2

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

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

任何人都知道出了什么问题,为什么我不能重命名 PK 名称?

谢谢!

4

1 回答 1

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 客户端赋予所有主键的硬编码名称。

编辑:这是手册中的引述:

a 的名称PRIMARY KEY总是PRIMARY,因此不能用作任何其他类型索引的名称。

于 2013-02-11T17:21:23.240 回答