在mySQL查询错误1005中找不到错误


Can't find Error in mySQL query error 1005

我是PHP和mySQL的新手,我似乎不知道错误是什么时候,查询是

$ $

分隔符

CREATE TABLE `bms`.`client_unit_people` (
  `unit_people_ID` int(13) unsigned NOT NULL AUTO_INCREMENT,
  `client_block_ID` int(13) unsigned NOT NULL,
  `client_unit_ID` int(13) unsigned NOT NULL,
  `people_name` varchar(255) NOT NULL,
  `people_salutation` varchar(255) NOT NULL,
  `people_telephone` varchar(20) DEFAULT NULL,
  `people_mobile` varchar(20) DEFAULT NULL,
  `user_account_ID` int(13) unsigned DEFAULT NULL,
  `web_access` enum('Yes','No') NOT NULL DEFAULT 'No',
  `tel_prefs` enum('Yes','No') NOT NULL DEFAULT 'No',
  `mob_prefs` enum('Yes','No') NOT NULL DEFAULT 'No',
  `email_prefs` enum('Yes','No') NOT NULL DEFAULT 'No',
  PRIMARY KEY (`unit_people_ID`),
  KEY `FK_up_ua_idx` (`user_account_ID`),
  KEY `FK_ua_up_idx` (`user_account_ID`),
  KEY `FK_up_cu_idx` (`client_unit_ID`),
  KEY `FK_up_cb_idx` (`client_block_ID`),
  CONSTRAINT `FK_up_cb` FOREIGN KEY (`client_block_ID`) REFERENCES `client_blocks` (`client_block_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `FK_ua_up` FOREIGN KEY (`user_account_ID`) REFERENCES `user_accounts` (`user_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `FK_up_cu` FOREIGN KEY (`client_unit_ID`) REFERENCES `client_units` (`client_unit_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='List of people associated with units'$$

我收到的错误是:

错误码:1005。不能创建表bms。Client_unit_people ' (errno: 150)

我认为外键约束必须引用目标表中正确类型的索引列。

确保在这些表中为相关键创建了索引,并且类型匹配。

例如,client_blocks应该在client_block_ID上有一个索引,并且两个表之间的类型应该相同。

在线文档显示这是最有可能导致1005/150错误的原因。

如果您要重新创建先前被删除的表,它必须具有符合引用它的外键约束的定义。通常150错误是关于外键约束的。列名和类型必须正确,索引必须为引用的键。

我想你应该在MySQL论坛的这个线程中找到你的问题的提示。希望有帮助