【发布时间】:2014-08-30 19:04:16
【问题描述】:
编辑:不知道为什么这被标记为重复。我得到的错误是不同的
我正在尝试删除主键定义,但由于某种原因收到错误。
mysql> ALTER TABLE `aux_sponsors` DROP PRIMARY KEY;
ERROR 1091 (42000): Can't DROP 'PRIMARY'; check that column/key exists
mysql> desc aux_sponsors;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| unit | varchar(8) | NO | | MF | |
| code | varchar(32) | NO | PRI | NULL | |
| userid | varchar(32) | NO | | | |
| fullName | varchar(64) | NO | | | |
| department | varchar(255) | NO | | | |
| description | varchar(255) | NO | | NULL | |
+-------------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
我在这里做错了吗?我只是想在这个表中不再有主键。
mysql> SHOW CREATE TABLE aux_sponsors;
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| aux_sponsors | CREATE TABLE `aux_sponsors` (
`unit` varchar(8) NOT NULL DEFAULT 'MF',
`code` varchar(32) NOT NULL,
`userid` varchar(32) NOT NULL DEFAULT '',
`fullName` varchar(64) NOT NULL DEFAULT '',
`department` varchar(255) NOT NULL DEFAULT '',
`description` varchar(255) NOT NULL,
UNIQUE KEY `code` (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
【问题讨论】:
-
你能试试
ALTER TABLE `aux_sponsors` DROP KEY 'PRIMARY';吗? -
@ForguesR
ALTER TABLEaux_sponsors` DROP KEYPRIMARY;错误 1091 (42000): 不能删除 'PRIMARY';检查列/键是否存在`仍然是同样的问题。 -
你没有主键;你有一个唯一的钥匙。所以,不需要
ALTER TABLE aux_sponsors DROP PRIMARY KEY。只需执行ALTER TABLE aux_sponsors DROP KEY code。我会将此作为答案发布,但在重新打开之前我不能这样做。 -
@Ed Cottrell 在你的回答中你能解释为什么我们在 DESC 表中看到
PRI吗?这真的是误导。 -
是的;文档中有一个原因,我会在重新打开后立即发布。