我认为这可能是MySQL的一个错误,但我不确定。任何人都可以告诉我如何为表创建主键,然后重命名主约束?如果可能的话,在创建表格时使用所需的名称创建主键。在MySQL上重命名主键约束
我创建的所有主键最终名为“Primary”。已经尝试在添加PK之前用所需的名称创建索引,并使用MySQL Workbench重命名PK。他们都没有工作。
任何人有任何想法是什么错误,为什么我不能重命名PK名称?
谢谢!
我认为这可能是MySQL的一个错误,但我不确定。任何人都可以告诉我如何为表创建主键,然后重命名主约束?如果可能的话,在创建表格时使用所需的名称创建主键。在MySQL上重命名主键约束
我创建的所有主键最终名为“Primary”。已经尝试在添加PK之前用所需的名称创建索引,并使用MySQL Workbench重命名PK。他们都没有工作。
任何人有任何想法是什么错误,为什么我不能重命名PK名称?
谢谢!
我不确定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
,它因此不能 作为名称的任何其他类型的指数。
“PRIMARY”的名称是硬编码的MySQL,而不是客户端。 – 2013-02-11 17:43:29
猜猜我只需要忍受这一点,或迁移到新的数据库。谢谢! – 2013-02-12 09:11:43
这就是MySQL的方式,他们接受但忽略了几件事情。从手册引用“* PRIMARY KEY的名称始终是PRIMARY *”:http://dev.mysql.com/doc/refman/5.5/en/create-table.html – 2013-02-11 17:39:50