ColumnName 是唯一的 ( UNIQUE KEY ColumnName
)。
我只是想让列不唯一(必须很简单,但无法理解如何)。
如果在 phpMyAdmin 中检查列名并在底部单击唯一图标,则获取#1062 - Duplicate entry '' for key 'RegistrationNumber'
. 好的,看到它是因为,点击它的图标ADD UNIQUE
。
行内结构中有唯一图标。但该图标不可点击。
如在 phpMyAdmin 中没有找到如何做,尝试查询。
根据尝试过的建议ALTER TABLE TableName DROP INDEX ColumnName
。
得到1091 Can't DROP 'ColumnName'; check that column/key exists
在这里https://stackoverflow.com/a/4414694/2465936发现This error means that you are trying to delete a key which is being used by another table.
可能 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
并非唯一的列。不明白为什么(可能与唯一键有些混乱)。在任何情况下都可以更改为不唯一。