我有一個數據庫應用程序,現在我們必須從複製(主 - 主複製)開始。 我們構建一個存儲函數的女巫返回一個BIGINT。此值在所有涉及的服務器上都是唯一的。mySQL和LAST_INSERT_ID問題
的情況: 我有一個表定義:
create table test (
id BIGINT not null primary key auto_increment,
col1 TEXT);
表有一個INSERT觸發器之前:
CREATE TRIGGER test_insert BEFORE INSERT ON test
FOR EACH ROW BEGIN
IF NEW.id = 0 THEN
SET @my_uuid = MYUUID();
SET NEW.id = @my_uuid;
END IF;
END;
插入操作測試(COL1)後的值( 「富」)我需要LAST_INSERT_ID()的值 - 但我只能得到值「0」。
我在扳機try'd這樣的:
SET NEW.id = LAST_INSERT_ID(@my_uuid);
但鴕鳥政策工作。
我讀了mysql的手冊頁女巫說,觸發器和函數內的last_insert_id的所有更改都將在觸發器結束時被取消。
所以我會盡量避免更改應用程序(女巫使用php.last_insert_id())...
任何想法如何解決這個問題不改變的PHP代碼?
greatings。