簡體   English   中英

在一個表中添加第二個外鍵-MySql

[英]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.

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