MySql:为归档引擎创建表,强制 auto_increment
Posted
技术标签:
【中文标题】MySql:为归档引擎创建表,强制 auto_increment【英文标题】:MySql: create table for archive engine, forcing auto_increment 【发布时间】:2014-02-01 06:38:08 【问题描述】:我在使用 Engine=ARCHIVE 创建简单表时遇到错误,这迫使我对主键列使用 auto_increment,这是我不想要的。 (mysql 5.6)。
例如:
创建表 ar_my_table ( COL_1 BIGINT UNSIGNED NOT NULL COMMENT '我的第一列', ... 主键 (COL_1) ) 引擎 = 存档;上面的错误是“ERROR 1030 (HY000): Got error -1 from storage engine”,
但是如果我对 PK 列使用 AUTO_INCREMENT 或者不放 PK,就会创建表(如下所示)
创建表 ar_my_table ( COL_1 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '我的第一列', ... 主键 (COL_1) ) 引擎 = 存档;或
创建表 ar_my_table ( COL_1 BIGINT UNSIGNED NOT NULL COMMENT '我的第一列', ... ) 引擎 = 存档;(顺便说一句,我尝试在没有 PK 的情况下创建表并使用 ALTER TABLE ADD CONSTRAINT ...但 alter 语句失败并出现同样的错误)。
如果我想拥有 PK 索引,归档引擎中是否必须使用 Auto_Increment。 Mysql 参考文档没有说明它(除了你可以有 PK 和没有其他索引)并且可以有 Auto_increment 暗示 Auto_increment 是可选的。
其他人也遇到过同样的问题吗?没有 Auto_increment 的 PK 有什么解决方案?
感谢帮助或指导,谢谢
【问题讨论】:
【参考方案1】:我遇到了同样的问题,MySQL 文档中没有,但我在 MariaDB 知识库中找到了它;
这不是错误,而是限制的一部分。键可以是 PRIMARY KEY(或者它可以是一个普通的非唯一索引),但无论哪种方式 必须在 AUTO_INCREMENT 列上。
Q, A
【讨论】:
以上是关于MySql:为归档引擎创建表,强制 auto_increment的主要内容,如果未能解决你的问题,请参考以下文章