您可以使用觸發器,對錶1的唯一或主鍵和INSERT忽略不計。
如果您在table1中插入了一個已經存在的值,那麼INSERT IGNORE將不會返回重複鍵錯誤。 觸發器會檢查table1中的值是否已經存在並將其插入到table2中。 如果需要,還可以在table2上添加一個唯一鍵並在觸發器中使用INSERT IGNORE。
上帝保佑!
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
CREATE TABLE `table2` (
`id` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
DELIMITER $$
CREATE
DEFINER = CURRENT_USER
TRIGGER `table1_insert` BEFORE INSERT
ON table1
FOR EACH ROW BEGIN
if exists (select * from table1 where id = new.id) then
insert into table2 (id) values (new.id);
end if;
END$$
DELIMITER ;
insert ignore into table1(id) values(1);
select * from table1;
select * from table2;
謝謝,這比每次更新行更好! – 2010-05-06 03:40:52