MySQL 06 mysql 如何實現類似 oracle 的 merge into

老马啸西风發表於2024-04-11

擴充閱讀

MySQL View

MySQL truncate table 與 delete 清空表的區別和坑

MySQL Ruler mysql 日常開發規範

MySQL datetime timestamp 以及如何自動更新,如何實現範圍查詢

MySQL 06 mysql 如何實現類似 oracle 的 merge into

MySQL 05 MySQL入門教程(MySQL tutorial book)

MySQL 04- EMOJI 表情與 UTF8MB4 的故事

MySQL Expression 1 of ORDER BY clause is not in SELECT list,references column

mysql 中 insert into tableName values() ON DUPLICATE KEY update time=now() 啥意思

在 MySQL 中,INSERT INTO 語句用於向表中插入新的行資料。語法如下:

INSERT INTO tableName (column1, column2, ...)
VALUES (value1, value2, ...)

上述語句中,tableName 是表的名稱,column1, column2, ... 是要插入的列名,value1, value2, ... 是要插入的對應列的值。

ON DUPLICATE KEY UPDATE 子句是用於在插入資料時,當遇到主鍵或唯一索引衝突時,執行更新操作。這樣可以避免插入重複的資料,而是更新已存在的行。

在你提供的例子中,ON DUPLICATE KEY UPDATE time=now() 的意思是,當插入資料時,如果出現主鍵或唯一索引衝突,將會更新已存在行中的 time 列為當前的時間戳(使用 now() 函式獲取)。

所以,這個語句的含義是:如果要插入的資料在表中已存在(根據主鍵或唯一索引判斷),則更新已存在行的時間列為當前時間;如果資料不存在,則插入新的行資料。

參考資料

https://github.com/jaywcjlove/mysql-tutorial

相關文章