相关疑难解决方法(0)

MySQL仅在行已更改时才更新

是否有可能仅在数据被真正改变的情况下使用"更新后"触发器.我知道"新旧".但是在使用它们时我只能比较列.例如"NEW.count <> OLD.count".

但我想要的是:如果"NEW <> OLD"则运行触发器

一个例子:

create table foo (a INT, b INT);
create table bar (a INT, b INT);

INSERT INTO foo VALUES(1,1);
INSERT INTO foo VALUES(2,2);
INSERT INTO foo VALUES(3,3);

CREATE TRIGGER ins_sum
    AFTER UPDATE ON foo
    FOR EACH ROW
    INSERT INTO bar VALUES(NEW.a, NEW.b);

UPDATE foo SET b = 3 WHERE a=3;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0


select * from bar;
+------+------+
| a    | b    | …
Run Code Online (Sandbox Code Playgroud)

mysql sql database triggers

63
推荐指数
4
解决办法
17万
查看次数

在UPDATE中使用IF..ELSE(SQL Server 2005和/或ACCESS 2007)

我需要设置如下的查询:

UPDATE XXXXXX
IF column A = 1 then set column B = 'Y' 
ELSE IF column A = 2 then set column C = 'Y' 
ELSE IF column A = 3 then set column D = 'Y' 
Run Code Online (Sandbox Code Playgroud)

等等等等...

我能够使用多个查询来执行此操作,但我想知道,如果我只能在1个语句中执行此操作.

sql-server-2005

12
推荐指数
2
解决办法
10万
查看次数

标签 统计

database ×1

mysql ×1

sql ×1

sql-server-2005 ×1

triggers ×1