【发布时间】:2017-09-13 06:24:58
【问题描述】:
我正在执行一个简单的 UPDATE 语句,以根据 HTMLEmailLog 表中具有指定 ID 的记录更新联系人表中的字段。这是查询:
UPDATE Contact AS c
INNER JOIN HTMLEmailLog AS h ON c.CustomerID = h.MemberID and c.Email1 = h.Email
SET c.ValidEmail1 = 'N'
WHERE h.id = 160605 ;
我收到警告:
来自上次查询的警告: 注意:使用语句格式写入二进制日志的不安全语句 因为 BINLOG_FORMAT = STATEMENT。写入表的语句 从另一个表中选择后自动增加列是不安全的,因为 检索行的顺序决定了哪些(如果有)行 书面。此顺序无法预测,并且可能在主服务器和主服务器上有所不同 奴隶
谁能解释一下为什么我会收到此警告消息? 有什么办法可以摆脱这个警告? 如果我直接更新联系人表(不使用 JOIN),我不会收到警告消息。
谢谢。
【问题讨论】:
-
这只是一个警告,而不是错误消息。
-
我知道这只是一个警告,但是,我不明白为什么我会收到这个警告,因为没有涉及 ORDER 并且没有插入新记录,只是更新了一个字符字段。也许,这与我在联系人表中的时间戳字段有关。
标签: mysql