编辑:不确定为什么将其标记为重复项。我得到的错误是不同的
我试图删除主键定义,但由于某种原因收到错误。
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)
Run Code Online (Sandbox Code Playgroud)
我在这里做错什么了吗?我只希望该表中不再有主键。
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)
Run Code Online (Sandbox Code Playgroud)
你没有PRIMARY KEY
; 你有一把UNIQUE
钥匙。因此,您不能执行以下操作:
ALTER TABLE `aux_sponsors` DROP PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)
相反,只要做
ALTER TABLE `aux_sponsors` DROP KEY `code`
Run Code Online (Sandbox Code Playgroud)
DESC
(a / k / a DESCRIBE
)不是真正的MySQL功能;根据文档,“提供DESCRIBE语句是为了与Oracle兼容。”
如果UNIQUE索引不能包含NULL值并且表中没有PRIMARY KEY,则可能显示为PRI。如果几列构成一个复合UNIQUE索引,则UNIQUE索引可能显示为MUL;否则,可能会显示为MUL。尽管各列的组合是唯一的,但各列仍可以容纳多次出现的给定值。
在您的情况下,该列code
是NOT NULL
并且是UNIQUE
键中的唯一列,因此DESC
将其显示为PRI
。由于这种类型的问题,最好使用它SHOW INDEX
来查找表上键的类型。
归档时间: |
|
查看次数: |
2446 次 |
最近记录: |