更新mysql集群的查询

时间:2017-06-21 23:30:20

标签: mysql cluster-computing

我在mysql master上执行了一个非常简单的查询 -

update test_db.test_table set name = "Crystal" where id=20;

工作得很好,并没有被奴隶复制。但是,当查询更改为使用单引号时,它可以工作 -

update test_db.test_table set name = 'Crystal' where id=20;

我试图找出解释为什么查询没有使用双引号的解释。有人能说出来吗?感谢。

1 个答案:

答案 0 :(得分:0)

MySQL通常允许使用单引号或双引号来编写字符串文字,尽管ANSI SQL仅指定单引号。如果启用ANSI_QUOTES SQL模式,则它遵循ANSI标准,只允许使用单引号。

听起来您正在使用基于语句的复制并且在从属设备上启用了ANSI_QUOTES,而不是主设备。因此,主服务器接受查询,但当它被发送到从服务器时,它们拒绝它。

确保主服务器和从服务器上的所有SQL模式设置相同,或使用基于行的复制。