当我们尝试在主 - 主MySQL MIXED复制上创建表时,使用包含AUTO_INCREMENT列的复合键,它会在主服务器上创建表但在从服务器上无法创建表。
以下是我们在奴隶方面遇到的错误:
Error 'Incorrect table definition; there can be only one auto column and it must be defined as a key' on query. Default database: 'total_chamilo'. Query: 'CREATE TABLE `c_attendance_result` ( c_id INT NOT NULL, id int NOT NULL auto_increment, user_id int NOT NULL, attendance_id int NOT NULL, score int NOT NULL DEFAULT 0, PRIMARY KEY (c_id, id) ) DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci'
数据库是MyISAM。
MySQL版本为5.5.40-0 + wheezy1-log
令人惊讶的是,我们在相同的服务器上运行相同的模式,但在其他复制模式(语句)和/或以前的MySQL版本上创建。
有没有人知道解决这个问题的方法,如果可能的话,不改变原始查询,因为它是大型转储的一部分,充满了这种声明......
感谢,
一个。
答案 0 :(得分:0)
看起来非常像这个奴隶没有正确配置并尝试使用InnoDB而不是MyISAM。具有AUTO_INCREMENT列的InnoDB表至少需要一个键,其中自动增量列是唯一或最左列。请参阅MySQL 5.5 reference manual。在您的情况下,自动增量列是第二列。