gpt4 book ai didi

MySQL 混合复制无法复制复合键中带有 auto_increment 的创建表

转载 作者:行者123 更新时间:2023-11-29 23:19:33 25 4
gpt4 key购买 nike

当我们尝试在主-主 MySQL 混合复制上创建一个表,并使用包含 AUTO_INCRMENT 列的复合键时,它会在主服务器上创建该表,但在从服务器上无法创建该表。

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

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 版本上创建。

有谁知道解决此问题的方法,如果可能的话,无需更改原始查询,因为它是大型转储的一部分,充满了此类语句...

谢谢

A.

最佳答案

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

关于MySQL 混合复制无法复制复合键中带有 auto_increment 的创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27443940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com