在平時的數據庫操作中,我們經常需要批量更新一些數據。而在使用MySQL的時候可能會遇到一種情況,就是需要批量更新不存在的數據,但是又不想對已有的數據進行刪除。這時候我們可以使用MySQL的INSERT ... ON DUPLICATE KEY UPDATE語句。
這個語句的使用方式很簡單,首先我們需要定義一個唯一索引,然后在執行更新的時候,如果遇到已有的數據就進行更新操作,如果不存在就進行插入操作。下面是一個示例:
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL DEFAULT '', `age` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;-- 如果 `name` 列中存在 ‘Lucy’ ,那么這條語句就會更新 age 列。INSERT INTO `test` (`name`, `age`) VALUES ('Lucy', 28) ON DUPLICATE KEY UPDATE `age` = 28;
這樣,我們就可以通過使用INSERT ... ON DUPLICATE KEY UPDATE語句來實現批量更新不存在的數據,而不用擔心會將已有的數據刪除。