簡體   English   中英

更新表查詢時不會創建Auto_increment列

[英]Auto_increment Column does not create while updating table query

我創建一個表,其查詢是

Create table unititem (ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID));

比通過以下查詢更改它

 Alter table unititem AUTO_INCREMENT=1;

我也有一個表tablename並且想要通過添加引用表unititem列來unitItemId進行unititem 我要執行的查詢是

Alter table tablename add column Unititemid INT NOT
NULL AUTO_INCREMENT ;

但是當我執行此查詢時,它給了我這個錯誤:

表定義不正確; 只能有一個自動列,並且必須將其定義為鍵

當我想使其成為外鍵時,它在以下查詢中給出1005 error

Alter table tablename 
add column Unititemid INT NOT NULL AUTO_INCREMENT,
ADD FOREIGN KEY (Unititemid) REFERENCES unititem (ID) ;

我不知道我在做什么錯。 有什么建議么?

Update1如建議的那樣,我沒有將unititemid添加為AUTO_INCREMENT

 ALTER TABLE tablename ADD COLUMN unititemid INT NOT NULL;

現在的問題是:如何使其成為外鍵? 當我使用以下查詢時,它給出一個錯誤:

 ALTER TABLE tablename ADD FOREIGN KEY  (unititemid) REFERENCES unititem(ID);

錯誤:錯誤代碼:1005無法創建表“ alnasar_inventory。#sql-a04_1”(錯誤號:150)
如何解決這個問題? 有什么建議么。

要解決此查詢,只需刪除AUTO_INCREMENT 嘗試:

Alter table tablename add column Unititemid INT NOT
NULL ;

您不希望(也不能擁有)外鍵在新表中自動遞增。

存在AUTO_INCREMENT可以自動為您的表行生成一個新的唯一ID,但是在外鍵上使用它沒有任何意義。

考慮表unititem 它有ID的123 您還可以在3行tablenameUnititemid123 現在,您在另一個表tablename創建一個新行。 您希望AUTO_INCREMENT在這里工作如何? 它將自動將3遞增到4但這沒有任何意義,因為unititem中沒有4 因此, AUTO_INCREMENT僅在原始表上有意義,而在另一個表上則沒有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM