gpt4 book ai didi

MySQL Alter table strange key 报错

转载 作者:行者123 更新时间:2023-11-29 02:01:04 24 4
gpt4 key购买 nike

我正在使用 MySQL Workbench 创建一个大型数据库。

我不断得到:

ERROR: Error 1089: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys

尝试执行以下查询时:

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 列的长度,但没有效果。我在其他几个表上也遇到了这个错误。

Workbench 哪里做错了?


我将其简化为:

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`

它仍然给我错误。

最佳答案

看起来您将索引字段类型从 CHAR/VARCHAR 更改为 INT,使用的索引是使用前缀长度创建的。该脚本重新创建此字段 - DROP COLUMN + ADD COLUMN,这会导致错误。

尝试使用这种方式更改字段 -

ALTER TABLE `view4`.`entities`
CHANGE COLUMN `industrTypeId` `industrTypeId` INT(11) NOT NULL
AFTER `paymentTermsId`,
CHANGE COLUMN `resellerType` `resellerType` INT(11) NOT NULL
AFTER `industrTypeId`;

关于MySQL Alter table strange key 报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579868/

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