簡體   English   中英

MySQL Drop主鍵不起作用

[英]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   |     |         |                |
+-------------+--------------+------+-----+---------+----------------+

從表中可以看出, idtemplate_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM