【发布时间】:2011-07-07 16:00:03
【问题描述】:
我们正在 2 个系统之间迁移,需要为我们的一个数据库表提供 2 个字段,这些字段始终保持同步。这是表结构:
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。我们不能使用'before insert',因为 id 列是一个 auto_increment 列,所以它在 insert 之前的值为 NULL,并且由于 MySQL 'after insert' 对触发器的限制,我不能执行以下操作:
CREATE TRIGGER insert_example
AFTER INSERT ON example
FOR EACH ROW
SET NEW.object_id = NEW.id;
我无法更新任一系统的代码,因此我需要一种在数据库端完成此操作的方法。两个系统都将插入新行。我怎样才能做到这一点?
【问题讨论】: