[英]adding 2nd foreign keys in one table - MySql
我想在現有表“ tbl_subcaste”上添加第二個外鍵,它已經具有一個“ fk caste caste_id ”,如下所示:
現在,我想在此表上添加另一個“ fk虔誠religion_id ”,如下所示:
但是MySql這樣做后給了我這個錯誤:
ALTER TABLE `tbl_subcaste`
ADD CONSTRAINT `fk religion religion_id`
FOREIGN KEY (`religion_id`) REFERE `sanskrut`.`tbl_religion`(`religion_id`)
ON DELETE NO ACTION ON UPDATE CASCADE;
錯誤:#1022-無法寫入; 表'#sql-534_f7'中的重復鍵
我不明白,為什么這不讓我添加另一個kf?
似乎外鍵名稱已經存在,因此只需將其更改並按以下方式嘗試-
ALTER TABLE `tbl_subcaste`
ADD CONSTRAINT `fk religion religion_id100`
FOREIGN KEY (`religion_id`) REFERE `sanskrut`.`tbl_religion`(`religion_id`)
ON DELETE NO ACTION ON UPDATE CASCADE;
即使您也應該遵循標准來避免此問題,因為您可以將名稱保留為“ fk_tablename_columnname”。
此外,您可以使用下面的查詢來獲取所有鍵名和其他有用的信息。
SELECT constraint_Schema AS mydb, table_name AS child_table,constraint_name AS foreign_key_name, referenced_table_name AS master_table
FROM information_Schema.REFERENTIAL_CONSTRAINTS
WHERE constraint_Schema='mydb' AND table_name='mytable';
我認為您已經錯過了語法“ REFERENCES”。 試試下面的查詢
ALTER TABLE tbl_subcaste
ADD CONSTRAINT `f.k` FOREIGN KEY (`religion_id`) REFERENCES sanskrut.tbl_religion(`religion_id`) ON UPDATE CASCADE ON DELETE NO ACTION;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.