我們正在兩個系統之間進行遷移,並且需要有一個始終保持同步的數據庫表中的兩個字段。下面是表的結構:MySQL觸發器更新新行
CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`object_id` int(11) NOT NULL DEFAULT '0',
`value` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `object_id` (`object_id`)
);
系統的一個插入新行,我們需要有OBJECT_ID了ID每次。由於id列是一個auto_increment列,所以在插入之前它的值爲NULL,並且由於'在插入'之後MySQL的限制,我們不能使用'插入前',因爲id列是auto_increment列,我不能執行以下操作:
CREATE TRIGGER insert_example
AFTER INSERT ON example
FOR EACH ROW
SET NEW.object_id = NEW.id;
我無法更新任何系統的代碼,所以我需要一種方法在數據庫端完成此操作。兩個系統都將插入新的行。我怎樣才能做到這一點?
您可以從之前的NEW.id在插入產生這樣的插入之前,它的價值不是用0 –
右邊...我編輯我的答案 – wonk0