gpt4 book ai didi

mysql - mysql 中外键约束格式错误

转载 作者:行者123 更新时间:2023-11-29 10:30:11 25 4
gpt4 key购买 nike

我有 2 个表 table1 和 table2table1 有 id 和 name,table2 有 id、instance(来自 table1 的外键)、hostname1 和 hostname2 字段。

创建表1

mysql> CREATE TABLE table1 (
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(50)
-> );

当我尝试使用外键创建 table2 时,它会抛出错误

"ERROR 1005 (HY000): Can't create table `databasename`.`table2` (errno: 150 "Foreign key constraint is incorrectly formed")"

代码是

mysql> CREATE TABLE table2(
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> instance VARCHAR(50) NOT NULL,
-> hostname1 VARCHAR(50) NOT NULL,
-> hostname2 VARCHAR(50) NOT NULL,
-> CONSTRAINT `fk_name`
-> FOREIGN KEY(instance) REFERENCES table1(name)
-> ON DELETE CASCADE
-> ON UPDATE RESTRICT
-> );

我在这里做错了什么?

最佳答案

FK 应引用 PK 或 UNIQUE 字段。

您可以将table2(实例)设置为与table1主键(INT)相同的类型并引用table1(id)。

或者如果您必须引用姓名所以 table1(name) 应该是唯一的

关于mysql - mysql 中外键约束格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47549875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com