我有一個MySQL主從配置。MySQL 5.1。*奇怪的觸發器複製行爲
在兩臺服務器上我有兩個表:table1
和table2
我也有兩個服務器上的以下觸發:
Trigger: test_trigger
Event: UPDATE
Table: table1
Statement: insert into table2 values(null)
Timing: AFTER
的table2
的結構如下:
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
+-------+---------+------+-----+---------+----------------+
問題是,在MySQL 5.1.*
上,當從設備調用觸發器時,它添加了我的id在master上插入,而不是它根據自己的auto_increment值插入的id。
比方說,我有以下數據:
在站長:
SELECT * FROM table2;
Empty set (0.08 sec)
奴隸:
SELECT * FROM table2;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
(只是忽略一個事實,即從不是一個完整的鏡子的主人)
鑑於abov Ë情況下,當我從主表1更新一行,從機停止並返回錯誤:
Error 'Duplicate entry '1' for key 'PRIMARY'' on query.
我不明白爲什麼從試圖插入一個特定的ID。
這很奇怪,在MySQL 5.0.*
這沒有發生。
是否使用基於語句的複製? – Vatev
@Vatev是 - 它是基於聲明的複製 – TSorin