2013-02-11 90 views
3

我認爲這可能是MySQL的一個錯誤,但我不確定。任何人都可以告訴我如何爲表創建主鍵,然後重命名主約束?如果可能的話,在創建表格時使用所需的名稱創建主鍵。在MySQL上重命名主鍵約束

我創建的所有主鍵最終名爲「Primary」。已經嘗試在添加PK之前用所需的名稱創建索引,並使用MySQL Workbench重命名PK。他們都沒有工作。

任何人有任何想法是什麼錯誤,爲什麼我不能重命名PK名稱?

謝謝!

+2

這就是MySQL的方式,他們接受但忽略了幾件事情。從手冊引用「* PRIMARY KEY的名稱始終是PRIMARY *」:http://dev.mysql.com/doc/refman/5.5/en/create-table.html – 2013-02-11 17:39:50

回答

6

我不確定MySQL是否允許首先給主鍵分配名稱。雖然似乎是其語法:

CREATE TABLE test (
    test_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    CONSTRAINT my_test_pk PRIMARY KEY (test_id) 
) 
ENGINE=InnoDB; 

...它沒有在information_schema.TABLE_CONSTRAINTS顯示我也可以發現這樣其他任何地方,我的印象中,它只是靜靜地丟棄。

您看到的名稱可能是您的GUI客戶端爲所有主鍵提供的硬編碼名稱。

編輯:這裏的報價從the manual

一個PRIMARY KEY的名字總是PRIMARY,它因此不能 作爲名稱的任何其他類型的指數。

+0

「PRIMARY」的名稱是硬編碼的MySQL,而不是客戶端。 – 2013-02-11 17:43:29

+0

猜猜我只需要忍受這一點,或遷移到新的數據庫。謝謝! – 2013-02-12 09:11:43