MySql:为归档引擎创建表,强制auto_increment

时间:2014-01-13 13:34:39

标签: mysql auto-increment archive mysql-5.6

我在使用Engine = ARCHIVE创建一个简单的表时遇到错误,它迫使我将auto_increment用于主键列,这是我不想要的。 (Mysql 5.6)。

E.g:

CREATE TABLE ar_my_table (
        COL_1 BIGINT UNSIGNED NOT NULL COMMENT 'my first column',
        ...
        PRIMARY KEY (COL_1)

) ENGINE = ARCHIVE ;

上面的失败是“ERROR 1030(HY000):从存储引擎得到错误-1”,

但是如果我使用AUTO_INCREMENT作为PK列或者不使用PK,则创建表(如下所示)

CREATE TABLE ar_my_table (
        COL_1 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'my first column',
        ...
        PRIMARY KEY (COL_1)

) ENGINE = ARCHIVE ;

OR

CREATE TABLE ar_my_table (
        COL_1 BIGINT UNSIGNED NOT NULL COMMENT 'my first column',
        ...

) ENGINE = ARCHIVE ;

(顺便说一句,我尝试在没有PK的情况下创建表并使用ALTER TABLE ADD CONSTRAINT ...但是alter statement失败并出现相同的错误。)

如果我想拥有PK索引,则归档引擎中是否必须使用Auto_Increment。 Mysql参考文档没有说明任何内容(除了你可以有PK而没有其他索引)并且可以让Auto_increment暗示Auto_increment是可选的。

其他人遇到同样的问题?有没有Auto_increment的PK的任何解决方案?

感谢帮助或指导,谢谢

1 个答案:

答案 0 :(得分:0)

我有同样的问题,MySQL文档中没有任何内容,但我在MariaDB知识库中找到了它;

  

这不是错误,而是限制的一部分。钥匙可以是主要的   KEY(或者它可以是一个普通的非唯一索引),但无论如何它   必须在AUTO_INCREMENT列上。

QA