在MySQL中插入的几个表中重复行

时间:2010-11-19 13:10:46

标签: mysql

目前我面临一个相当奇怪的要求,但不过,它必须得到解决!

我们有几个表,名称如下:

file_1,file_2,file_3。

如果用户在file_1中插入一行,则必须将其复制到file_2& file_3。如果用户在file_2中插入一行,则必须在file_1& file_3。我已经尝试过这样创建一个触发器:

CREATE TRIGGER duplicatepictures BEFORE INSERT ON wp_ngg_pictures
  FOR EACH ROW
    INSERT INTO wp_2_ngg_pictures(post_id, galleryid, filename, description, alttext, imagedate, exclude, sortorder, meta_data) 
    VALUES (NEW.post_id, NEW.galleryid, NEW.filename, NEW.description, NEW.alttext, NEW.imagedate, NEW.exclude, NEW.sortorder, NEW.meta_data);

但是这没有用,因为没有插入行,如果将此触发器添加到多个表中。

整个事情必须在SQL中解决,因为将信息输入数据库的程序无法更改。有什么建议吗?

更新:

我忘记了,在插入行之后,它们必须可以独立编辑。

2 个答案:

答案 0 :(得分:0)

您可以使用视图解决它(需要MySQL 5)。

创建一个包含所有文件的表(例如file_all)并插入所有现有记录。

然后删除file_1,file_2和file_3:

drop table file_1;
drop table file_2;
drop table file_3;

然后创建3个视图:

create view file_1 as select * from file_all;
create view file_2 as select * from file_all;
create view file_3 as select * from file_all;

请参阅updatable views

上的文档

答案 1 :(得分:0)

file_2和file_3可以成为file_1的别名吗?