Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 外键约束错误1005_Mysql_Database - Fatal编程技术网

Mysql 外键约束错误1005

Mysql 外键约束错误1005,mysql,database,Mysql,Database,我的数据库中有以下两个表: 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,

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

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表失败并且它引用了错误150,这意味着将为被修改的表错误地形成外键定义。要显示服务器中最新InnoDB外键错误的详细说明,请发出
SHOW ENGINE InnoDB STATUS


什么样的数据库?哪个引擎?--编辑:刚刚注意到它的InnoDB,也许你应该在问题和标签中说得更清楚。删除
fk\u party\u postaladdress\u id
约束后,你的DDL在MySQL 5.5上运行时不会出错。(已删除,因为您没有为其引用的表发布DDL。)