我认为这可能是MySQL的一个错误,但我不确定。任何人都可以告诉我如何为表创建主键然后重命名主要约束?如果可能,在创建表时使用所需名称创建主键。
我创建的所有主键最终都是名为“Primary”。在添加PK之前已经尝试使用所需名称创建索引,并使用MySQL Workbench重命名PK。他们都没有工作。
任何人都知道什么是错的,为什么我不能重命名PK名字?
谢谢!
答案 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
,因此不能 用作任何其他类型索引的名称。