CREATE TRIGGER items_
ON test
after update
AS
begin
INSERT INTO test2(id,namecan)
SELECT id,namecan from test
end
我尝试过触发器,但我没有得到任何结果,所以请帮助我如何处理它 也欢迎涉及两个存储过程的方法
答案 0 :(得分:0)
您可以使用存储过程执行此操作,但我会使用触发器。
使用存储过程,我会感觉到您使用otherDatabase表上的游标来读取记录并将每个记录与Table1中的值进行比较,以确定Table1的数据是否需要写入Table2,如果需要,则将其写入做到这一点。
使用触发器,我只需通过任何方式更新Table1中的数据,而无需考虑覆盖数据和触发器中的内容,
使用## Inserted&amp ;;使用旧值和新值。 ##删除(系统)表以确定是否需要将旧值(## Deleted)写入Table2。
答案 1 :(得分:0)
您的触发器语法错误
delimiter //
CREATE TRIGGER items_ after update
ON test
for each row
begin
INSERT INTO test2(id,namecan) values (old.id,old.namecan);
end; //
delimiter ;
因此,每当您使用测试表中的旧行值更新测试表中的行时,此触发器将进入test2表。
答案 2 :(得分:0)
如果你不想使用触发器,你可以选择这个概念。
假设有一个表格,您可以在表格中插入值 register 表格。并且表单的操作转到servlet MyServlet 。在 Myservlet 中
您可以先从寄存器表中获取数据,然后将其存储到 Rsultset 对象中,让 rs 。然后将 rs 插入新表中
如果我不清楚,请告诉我。
答案 3 :(得分:0)
你应该调用old.id和old.namecan(我假设表'test'有'id'和'namecan'字段)来获取旧数据。你的触发器主体应该是这样的
begin
INSERT INTO test2(id,namecan) value(old.id, old.namecan)
end
'old'将引用您更新的记录。