【发布时间】:2013-01-12 20:15:35
【问题描述】:
我正在使用 MySQL Workbench 创建一个大型数据库。
我不断得到:
错误:错误 1089:前缀键不正确;使用的键部分不是字符串,使用的长度比键部分长,或者存储引擎不支持唯一前缀键
尝试执行以下查询时:
ALTER TABLE `view4`.`entities` DROP COLUMN `resellerType` ,
DROP COLUMN `industrTypeId` ,
DROP COLUMN `paymentTermsId` ,
ADD COLUMN `paymentTermsId` INT(11) NOT NULL AFTER `vatRateId` ,
ADD COLUMN `industrTypeId` INT(11) NOT NULL AFTER `paymentTermsId` ,
ADD COLUMN `resellerType` INT(11) NOT NULL AFTER `industrTypeId` ,
DROP FOREIGN KEY `fk_entities_grades1`
我尝试过更改各种 INT 列的长度,但没有效果。我在其他几张桌子上也遇到了这个错误。
工作台做错了什么?
我把它简化了一点:
ALTER TABLE `view4`.`entities` DROP COLUMN `resellerType` ,
DROP COLUMN `industrTypeId` ,
ADD COLUMN `industrTypeId` INT(11) NOT NULL AFTER `paymentTermsId` ,
ADD COLUMN `resellerType` INT(11) NOT NULL AFTER `industrTypeId`
它仍然给我错误。
【问题讨论】:
-
"workbench 做错了什么?" - 你的意思是它在 mysql 控制台中工作? =)
-
把句子分成小块。隔离错误。
-
我相信问题是您试图删除一列“paymentTermsId”(以及更多),并且您要求 mysql 在“paymentTermsId”(以及更多)之后添加一列。你有什么想法?
-
@Reno Jones 它在任何控制台中都不起作用,所以它是工作台以错误的顺序做事?有什么解决办法?
-
您可以先添加列,然后将它们放到不同的查询中吗?这将为您完成这项工作。
标签: mysql database-design foreign-keys mysql-workbench