【发布时间】:2018-01-27 17:36:31
【问题描述】:
我已经创建了数据库和所有tables 和foreign key constraints,但我在父table 中有一个列unique 并且是复合key 的一部分,所以我必须drop所有foreign key constraints 来自所有子tables,然后dropped 父unique constraint 上的unique constraint。
现在,当我将 foreign key constraint 添加回所有子 tables 时,它给出了 error:foreign key constraint 的格式不正确,尽管我已经检查了我的父母和孩子 @987654337 @ 并且它们是相同的 type 使用相同的 engine、unicode 和所有。但这仍然被抛出。
当我检查子table 的table 结构时,它有一个为foreign key 定义的index 并且column 是子column foreign key,所以我在删除它后尝试了,但仍然是@987654347 @。
查询
ALTER TABLE `child_table` ADD CONSTRAINT FOREIGN KEY `fk_parent_table_child_table_column_name` (child_table_column_name)
REFERENCES `parent_table`(parent_table_column_name) ON DELETE RESTRICT ON UPDATE NO ACTION;
columns 都是 VARCHAR PRIMARY KEY and NOT NULL
如果需要更多信息,请询问。
编辑
到目前为止,我已经尝试从子 table 和 dropping column dropped index、dropped PRIMARY KEY CONSTRAINT column 然后将其添加回 VARCHAR(14), NOT NULL,仍然没有成功。
编辑 2
还尝试在primary key中add孩子column,然后尝试申请foreign key constraint,目前没有成功。
【问题讨论】:
-
是的,我已经尝试了几种解决方案,但都没有奏效,我不想让我的专栏独一无二,因为我做了所有这些都是因为它
-
你能显示两个表的确切列定义吗?
-
我已经提过了
-
我说确切,我认为您的专栏不会只是
varchar。复制粘贴在这里
标签: php mysql database foreign-keys composite-primary-key