暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

17.4.1.25 Replication and Reserved Words

原创 由迪 2020-04-15
497

尝试从较旧的主服务器复制到较新的从服务器时,您会遇到问题,并且在主服务器上使用标识符,这些标识符是在从服务器上运行的较新MySQL版本中的保留字。一个示例是使用range在5.0主服务器上命名的表列,​​该表列正在复制到5.1或更高版本的从服务器,因为这 RANGE是从MySQL 5.1开始的保留字。复制可以在这种情况下,失败,错误1064 您有一个错误的SQL语法…, 即使使用保留字或有使用保留字命名列的表名为数据库或表是从复制排除。这是由于每个SQL事件都必须在执行之前由从服务器解析,这样,从服务器才能知道哪个数据库对象将受到影响。该事件被解析后,才可以从应用由定义的任何过滤规则 --replicate-do-db, --replicate-do-table, --replicate-ignore-db,和 --replicate-ignore-table。

要解决主服务器上的数据库,表或列名被从服务器视为保留字的问题,请执行以下操作之一:

ALTER TABLE 在主服务器上 使用一个或多个语句来更改任何数据库对象的名称,这些名称将被视为从服务器上的保留字,并更改所有使用旧名称的SQL语句来使用新名称。

在使用这些数据库对象名称的任何SQL语句中,使用反引号(`)将名称写为带引号的标识符。

有关按MySQL版本保留字的列表,请参见 《MySQL服务器版本参考》中的“ 保留字”。有关标识符引用规则,请参见 第9.2节“模式对象名称”。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论