0

我在运行简单语句时收到以下警告,我很好奇为什么会得到它:

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表1 SETCity ='Miami', ExpDate ='201227', User ='JDoe', UpdDate ='2015-02-17 16:11:25' WHEREid= 61

4

1 回答 1

1

最后,错误显示了这里到底出了什么问题。 Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column 错误不在表本身,错误在更新此表时触发的触发器或过程中。

于 2015-02-18T14:51:52.793 回答