在一个 table - MySql 中添加第二个外键
adding 2nd foreign keys in one table - MySql
我想在我现有的 table 'tbl_subcaste' 上添加第二个外键,它已经有一个 'fk caste caste_id' ass如下所示:
现在我想在此 table 上添加另一个“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 - 无法写入; table '#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;
我想在我现有的 table 'tbl_subcaste' 上添加第二个外键,它已经有一个 'fk caste caste_id' ass如下所示:
现在我想在此 table 上添加另一个“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 - 无法写入; table '#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;