gpt4 book ai didi

MySQL 需要使列不唯一。错误无法删除 'ColumnName';检查列/键是否存在

转载 作者:可可西里 更新时间:2023-11-01 06:36:58 25 4
gpt4 key购买 nike

ColumnName 是唯一的(UNIQUE KEY ColumnName)。

我只想使列不唯一(必须非常简单,但无法理解如何实现)。

如果在 phpMyAdmin 中检查列名并在底部单击唯一图标,得到 #1062 - Duplicate entry '' for key 'RegistrationNumber'。好的,看到它是因为,点击它 ADD UNIQUE 图标。

行内结构中有唯一图标。但是该图标不可点击。

因为在 phpMyAdmin 中没有找到如何做,尝试查询。

根据建议尝试 ALTER TABLE TableName DROP INDEX ColumnName

获取 1091 无法删除“ColumnName”;检查列/键是否存在

在这里https://stackoverflow.com/a/4414694/2465936发现 此错误意味着您正在尝试删除另一个表正在使用的键。可能 ColumnName 已被另一个表使用。

请告知需要做什么才能使列不唯一。

SHOW CREATE TABLE得到

Array
(
[0] => Array
(
[Table] => 18_6_TransactionPartners
[Create Table] => CREATE TABLE `18_6_TransactionPartners` (
`Number` int(11) NOT NULL AUTO_INCREMENT,
`CompanyName` char(255) COLLATE utf8_unicode_ci NOT NULL,
`RegistrationNumber` char(255) COLLATE utf8_unicode_ci NOT NULL,
.......
PRIMARY KEY (`Number`),
UNIQUE KEY `Number_2` (`Number`),
UNIQUE KEY `CompanyName` (`CompanyName`,`RegistrationNumber`),
KEY `Number` (`Number`)
) ENGINE=InnoDB AUTO_INCREMENT=444 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
)

)

更新

根据@Bart Friederichs 的建议,尝试了 ALTER TABLE 18_6_TransactionPartners DROP INDEX Number 并更改了列 RegistrationNumber 不是唯一的。不明白为什么(可能与唯一键有些困惑)。在任何情况下都可以更改为不唯一。

最佳答案

可能您有一个命名的 INDEX。通过使用 SHOW CREATE TABLE tbl,您可以找出索引的名称。然后按名称删除它们(例如一些测试表):

mysql> SHOW CREATE TABLE test;
CREATE TABLE `test` (
`entry_id` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
UNIQUE KEY `k` (`entry_id`)
)

要删除索引,请使用:

ALTER TABLE test DROP INDEX k;

您的 key 名称是 RegistrationNumber(如错误消息所示):

ALTER TABLE TableName DROP INDEX RegistrationNumber;

关于MySQL 需要使列不唯一。错误无法删除 'ColumnName';检查列/键是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18142055/

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