我使用了以下兩個查詢。列被添加到表中,但第二個查詢不起作用。將外鍵添加到列失敗
alter table rooms add column productid int not null;
alter table rooms add foreign key(productid) references stock(productid) on delete cascade;
我在想什麼?
我使用了以下兩個查詢。列被添加到表中,但第二個查詢不起作用。將外鍵添加到列失敗
alter table rooms add column productid int not null;
alter table rooms add foreign key(productid) references stock(productid) on delete cascade;
我在想什麼?
您需要在添加外鍵之前在該字段上創建索引。
但是,當你創建你的外鍵,它不會因爲「NOT NULL」而工作。實際上,你必須刪除「NOT NULL」,填充你的數據,然後寫回「NOT NULL」。
此外,rooms.productid和stock.productid必須是相同的類型。
試試這個:
alter table rooms add column productid int
alter table rooms add index (productid)
alter table rooms add foreign key (productid) references stock (productid) on delete cascade
alter table rooms添加列productid int not null,添加外鍵(productid)引用stock(productid)刪除級聯;這個語法正確嗎? – VijayaRagavan
看到我編輯的答案 –
工作正常。謝謝朋友。 – VijayaRagavan
用途:
alter table rooms add productid int null;
alter table rooms add foreign key(productid) references stock(productid) on delete cascade
這是我嘗試過的朋友。 – VijayaRagavan
在表中使用新列時,不要使用列關鍵字,並且如果表中已有數據,則不能插入空列。有輕微的修改。 –
「*不*工作」 是不可接受的錯誤描述。 –
您可以添加「庫存」表格說明嗎? –
名稱\t VARCHAR(45)\t NO \t \t \t 價格\t浮子\t NO \t \t \t 類別\t VARCHAR(45)\t NO \t \t未知\t DATED \t日期時間\t NO \t \t \t 斯諾\t INT(11) \t NO \t UNI \t \t auto_increment – VijayaRagavan