0
我有這些表:如何確定哪一列更新?
// users
+----+--------+--------------+------------+---------------------------+
| id | name | phone | postalcode | email |
+----+--------+--------------+------------+---------------------------+
| 1 | john | 0338294214 | 65462345 | [email protected] |
| 2 | jack | 0657359930 | 93827424 | [email protected] |
| 3 | peter | 0083247242 | 99849422 | [email protected] |
+----+--------+--------------+------------+---------------------------+
// notifications
+----+---------+---------------+------------+
| id | user_id | content | timestamp |
+----+---------+---------------+------------+
| 1 | 2 | phone updated | 1452642595 |
+----+---------+---------------+------------+
而且我有users
表::
DELIMITER //
CREATE TRIGGER `send_notification` AFTER UPDATE ON `users`
FOR EACH ROW BEGIN
INSERT INTO notification(user_id, content, timestamp)
values(new.id, "phone updated", UNIX_TIMESTAMP())
END
//
DELIMITER
所有我想要做的就是執行該觸發器就在phone
列該觸發器UPDATE AFTER更新。 (不是當name
或postalcode
或email
更新)。我怎樣才能定義這個條件?
似乎是正確的..謝謝.. upvote – stack
一個小問題,'<=>'意味着*不等於*。那麼,什麼是'不'?我認爲你必須說:*如果'phone'列的舊值和第一個值不等於「phone changed」。*所以我相信你必須刪除那個'NOT'。 – stack
@stack:**'<=> **表示......「空安全相等,該運算符與=運算符執行相等比較,但如果兩個操作數均爲NULL,則返回1而不是NULL;如果爲0,則返回1而不是NULL if一個操作數是NULL「。參考:[http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_equal-to](http://dev.mysql.com/doc/refman/5.7/en/比較-operators.html#operator_equal通) – spencer7593