2015-02-18 2 views
0

я получил следующее предупреждение работает простое заявление и мне было интересно, почему я получил его:1548 [Предупреждение] Опасное утверждение записывается в бинарный журнал, используя формат отчетности начиная с BINLOG_FORMAT = О

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 Сити ='Miami', ExpDate ='201227', Пользователь ='JDoe', UpdDate ='2015-02-17 16:11:25' WHERE ID = 61

+1

Нам нужна структура таблицы, чтобы идентифицировать ошибку. Изменить: особенно индексы, код CREATE поможет. –

+0

@BrainFooLong - Я разместил структуру. Это ты имел в виду? – xaisoft

+0

Почти полный код CREATE TABLE поможет больше. На данный момент нет ошибки. Возможно, вы найдете ее при поиске здесь http://dev.mysql.com/doc/refman/5.6/ru/replication-rbr-safe-unsafe.html –

ответ

1

Наконец, показать ошибки, что именно здесь не так. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column Ошибка не в самой таблице, ошибка в триггере или процедуре, которая срабатывает при обновлении этой таблицы.

+0

Вы правы. Я посмотрел, и есть, как 5 триггеров. Я не очень хорошо знаком с mySQL. Я думаю, что администратор базы данных должен решить эту проблему. Я заметил много людей, использующих смешанный режим вместо двоичного. – xaisoft

+0

Возможно, ваша БД не была достаточно оптимизирована для репликации. Возможно, есть некоторая работа по перестройке, зависит от вашей конкретной структуры db. Вы должны спросить кого-нибудь, кто сделал эту базу данных. –