我是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论坛的这个线程中找到你的问题的提示。希望有帮助