gpt4 book ai didi

mysql - 外键约束错误1005

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:09 26 4
gpt4 key购买 nike

我的数据库中有以下 2 个表:

CREATE TABLE `address` (
`id` bigint(20) NOT NULL auto_increment,
`entity_creation_timestamp` datetime default NULL,
`entity_version` bigint(20) default NULL,
`city` varchar(255) default NULL,
`country` varchar(255) NOT NULL,
`county` varchar(255) default NULL,
`label` varchar(255) default NULL,
`line1` varchar(255) default NULL,
`line2` varchar(255) default NULL,
`line3` varchar(255) default NULL,
`state` varchar(255) NOT NULL,
`zip` varchar(255) NOT NULL,
`zip_extension` varchar(255) default NULL,
`party_id` bigint(20) default NULL,
`list_index` int(11) default NULL,
`last_updated_timestamp` datetime default NULL,
PRIMARY KEY (`id`),
KEY `fk_party_postaladdress_id` (`party_id`),
CONSTRAINT `fk_party_postaladdress_id` FOREIGN KEY (`party_id`) REFERENCES `sims_party` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

另一个:

CREATE TABLE `state` (
`state` varchar(255) NOT NULL,
`name` varchar(255) default NULL,
PRIMARY KEY (`state`),
KEY `pk_state` (`state`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我正在尝试将“地址”表中“状态”列的外键约束应用于“状态”表中的“名称”列..

我正在使用的命令是:

ALTER TABLE address
ADD CONSTRAINT FK_address_state FOREIGN KEY (state)
REFERENCES state(state) ON DELETE RESTRICT ON UPDATE RESTRICT;

但是每次我运行这个命令,我都会得到以下错误:

ERROR 1005 (HY000): Can't create table 'db.#sql-75c_da' (errno: 150)

知道哪里出了问题...???

最佳答案

如果 MySQL 从 CREATE TABLE 语句中报告错误编号 1005,并且错误消息指的是错误 150,则表创建失败,因为没有正确形成外键约束。类似地,如果 ALTER TABLE 失败并且它引用错误 150,这意味着外键定义将不正确地形成为更改的表。要显示服务器中最近 InnoDB 外键错误的详细说明,请发出 SHOW ENGINE INNODB STATUS

http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

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

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