第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

MySQL僅在行已更改時(shí)才更新

MySQL僅在行已更改時(shí)才更新

蝴蝶不菲 2019-08-12 17:18:19
MySQL僅在行已更改時(shí)才更新是否有可能僅在數(shù)據(jù)被真正改變的情況下使用“更新后”觸發(fā)器。我知道“新舊”。但是在使用它們時(shí)我只能比較列。例如“NEW.count <> OLD.count”。但我想要的是:如果“NEW <> OLD”則運(yùn)行觸發(fā)器一個(gè)例子: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: 0select * from bar;+------+------+| a    | b    |+------+------+|    3 |    3 |+------+------+關(guān)鍵是,有一個(gè)更新,但沒(méi)有任何改變。但無(wú)論如何都觸發(fā)了觸發(fā)器。恕我直言應(yīng)該有一種方式它沒(méi)有。我知道我可以使用如果NOW.b <> OLD.b對(duì)于這個(gè)例子。想象一下有一個(gè)變化列的大桌子。您必須比較每一列,如果數(shù)據(jù)庫(kù)發(fā)生更改,則必須調(diào)整觸發(fā)器。并且比較硬編碼的行的每一列并不“感覺(jué)”好:)加成正如你所看到的那樣匹配的行數(shù):1已更改:0警告:0MySQL知道該行沒(méi)有改變。但它不會(huì)與觸發(fā)器分享這些知識(shí)。像“AFTER REAL UPDATE”之類的觸發(fā)器或類似的東西會(huì)很酷。
查看完整描述

3 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

想象一下有一個(gè)變化列的大桌子。您必須比較每一列,如果數(shù)據(jù)庫(kù)發(fā)生更改,則必須調(diào)整觸發(fā)器。并且比較每行硬編碼并不“感覺(jué)”好:)

是的,但這是繼續(xù)進(jìn)行的方式。

作為旁注,在更新之前進(jìn)行先發(fā)制人檢查也是一種好習(xí)慣:

UPDATE foo SET b = 3 WHERE a=3 and b <> 3;

在您的示例中,這將使它更新(并因此覆蓋行而不是三行。


查看完整回答
反對(duì) 回復(fù) 2019-08-12
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

我不能發(fā)表評(píng)論,所以請(qǐng)注意,如果你的列支持NULL值,OLD.x <> NEW.x就不夠了,因?yàn)?/p>

SELECT IF(1<>NULL,1,0)

返回0與...相同

NULL<>NULL 1<>NULL 0<>NULL 'AAA'<>NULL

因此它不會(huì)跟蹤FROM和TO NULL的變化

這種情況下的正確方法是

((OLD.x IS NULL AND NEW.x IS NOT NULL) OR (OLD.x IS NOT NULL AND NEW.x IS NULL) OR (OLD.x<>NEW.x))


查看完整回答
反對(duì) 回復(fù) 2019-08-12
  • 3 回答
  • 0 關(guān)注
  • 635 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)