0

当我们尝试在主-主 MySQL MIXED 复制上创建表时,使用包含 AUTO_INCREMENT 列的复合键,它在主服务器上创建表,但在从服务器上创建失败。

这是我们在从属端遇到的错误:

错误'表定义不正确;只能有一个自动列,并且必须在查询时将其定义为键。默认数据库:“total_chamilo”。查询:'CREATE TABLE `c_attendance_result`(
                 c_id INT NOT NULL,
            id int NOT NULL auto_increment,
            user_id int 非空,
            出勤ID int NOT NULL,
            score int NOT NULL DEFAULT 0,
            主键 (c_id, id)
        ) 默认字符集 utf8 默认整理 utf8_general_ci'

数据库是 MyISAM。

MySQL版本是5.5.40-0+wheezy1-log

令人惊讶的是,我们有匹配相同模式的表在相同的服务器上工作,但在其他复制模式(语句)和/或以前的 MySQL 版本上创建。

有谁知道解决这个问题的方法,如果可能的话,不改变原始查询,因为它是一个大转储的一部分,充满了这种陈述......

谢谢,

一个。

4

1 回答 1

0

这看起来很像这个从站没有正确配置并试图使用 InnoDB 而不是 MyISAM。具有 AUTO_INCREMENT 列的 InnoDB 表至少需要一个键,其中自动增量列是唯一的或最左边的列。请参阅MySQL 5.5 参考手册。在您的情况下,自动增量列是第二列。

于 2015-03-30T14:53:45.990 回答