重命名MySQL的主键约束

时间:2013-02-11 16:50:17

标签: mysql constraints primary-key

我认为这可能是MySQL的一个错误,但我不确定。任何人都可以告诉我如何为表创建主键然后重命名主要约束?如果可能,在创建表时使用所需名称创建主键。

我创建的所有主键最终都是名为“Primary”。在添加PK之前已经尝试使用所需名称创建索引,并使用MySQL Workbench重命名PK。他们都没有工作。

任何人都知道什么是错的,为什么我不能重命名PK名字?

谢谢!

1 个答案:

答案 0 :(得分: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 ,因此不能   用作任何其他类型索引的名称。