[英]Mysql drop primary key doesn't work
這是我的桌子:
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| template_id | int(11) | NO | MUL | NULL | |
| type | smallint(6) | NO | | 2 | |
| width | varchar(100) | NO | | | |
| height | varchar(100) | NO | | | |
+-------------+--------------+------+-----+---------+----------------+
從表中可以看出, id
和template_id
是主鍵,並且id
具有auto_increment設置。
我要刪除的是tempalte_id
主鍵屬性。
這是我嘗試的mysql查詢字符串:
ALTER TABLE ts_template_size
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`);
該查詢可以成功執行,但似乎沒有任何變化。 沒有警告,沒有錯誤,並且tempalte_id
的主鍵屬性仍然存在
那么我該如何解決呢? 我的查詢出了什么問題?
更改自動遞增
ALTER TABLE ts_template_size MODIFY id INT NULL;
下降
ALTER TABLE ts_template_size
DROP PRIMARY KEY;
並重新創建它:
ALTER TABLE yourtable
ADD PRIMARY KEY (`id`);
“我的查詢出了什么問題?”
您所查詢的是下降的主鍵id
,立即在你的表,然后重新添加它。 沒有錯誤消息,因為查詢有效。
問題在於template_id
不是表中的主鍵。 這應該工作:
ALTER TABLE ts_template_size drop index `template_id`;
您的id
主鍵將保留,如您所願。
請參閱以下答案以獲取有關MUL
索引指定的更多信息(這是表中的template_id
): https : //stackoverflow.com/a/15268888/1250190
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.