1548 [警告] 使用语句格式写入二进制日志的不安全语句,因为 BINLOG_FORMAT = STATEMENT
1548 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT
我收到了以下警告 运行 简单的声明,我很好奇为什么会收到它:
UPDATE `Table1`
SET `City`='Miami',
`ExpDate`='201227',
`User`='JDoe',
`UpdDate`='2015-02-17 16:11:25'
WHERE `id` = 61`
这里是 Table1
结构:
CREATE TABLE `Table1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`User` varchar(10) COLLATE utf8_bin DEFAULT NULL,
`City` varchar(25) COLLATE utf8_bin DEFAULT NULL,
`ExpDate` varchar(10) COLLATE utf8_bin DEFAULT NULL,
`UpdDate` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `Unique_Index` (`User`,`City`),
UNIQUE KEY `id` (`id`),
KEY `ALT1_IDX_Table1` (`User`,`City`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
日志中的完整错误:
2015-02-17 16:10:08 1548 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly. Statement: UPDATE
Table1
SET
City='Miami',
ExpDate='201227',
User='JDoe',
UpdDate='2015-02-17 16:11:25'
WHERE
id= 61
最后,错误显示这里到底出了什么问题。
Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column
错误不在 table 本身,错误在这个 table get 更新时触发的触发器或过程中。
我收到了以下警告 运行 简单的声明,我很好奇为什么会收到它:
UPDATE `Table1`
SET `City`='Miami',
`ExpDate`='201227',
`User`='JDoe',
`UpdDate`='2015-02-17 16:11:25'
WHERE `id` = 61`
这里是 Table1
结构:
CREATE TABLE `Table1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`User` varchar(10) COLLATE utf8_bin DEFAULT NULL,
`City` varchar(25) COLLATE utf8_bin DEFAULT NULL,
`ExpDate` varchar(10) COLLATE utf8_bin DEFAULT NULL,
`UpdDate` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `Unique_Index` (`User`,`City`),
UNIQUE KEY `id` (`id`),
KEY `ALT1_IDX_Table1` (`User`,`City`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
日志中的完整错误:
2015-02-17 16:10:08 1548 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly. Statement: UPDATE
Table1
SET
City='Miami',
ExpDate='201227',
User='JDoe',
UpdDate='2015-02-17 16:11:25'
WHERE
id= 61
最后,错误显示这里到底出了什么问题。
Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column
错误不在 table 本身,错误在这个 table get 更新时触发的触发器或过程中。