您好我想实现一个触发器,我有两个表:
在Table1上插入
*Table1**
Name File
a abc
b efg
**Table2**
Name File
a abc
b efg
更新用
**Table1**
Name File
a file1
b file2
**Table2**
Name File
a abc,file1
b efg,file2
我想在Table1上写一个触发器,它将复制Column' Name' '文件'对于表1中的每个插入值以及对于表1中特定名称值的列文件的更新值,它将更新'文件'列值以表2中的逗号分隔形式。
我能够成功创建插入触发器但是更新的以下触发器更新了两个表中常见的所有行:
CREATE TRIGGER trigger2 AFTER UPDATE ON Table1
FOR EACH ROW
UPDATE Table2 INNER JOIN
upload
ON (Table2.Name = Table1.Name)
SET Table2.a_file = CONCAT(Table2.a_file, ","),
Table2.a_file = CONCAT(Table2.a_file, "Table1.a_file") ;
此外,CONCAT()函数无法正常工作。
答案 0 :(得分:0)
此更新触发器如何:
CREATE TRIGGER trigger2 AFTER UPDATE ON Table1
FOR EACH ROW
UPDATE Table2 SET a_file = CONCAT(a_file, ",", NEW.a_file) WHERE Name = NEW.Name;
答案 1 :(得分:0)
您应该使用NEW来获取更新值
例如
NEW.a_file --not table1.a_file (for trigger on table1)