MySQL 5.7 REPLACE語句的用法
REPLACE類似INSERT,會以主鍵或唯一索引為條件,如果插入行的主鍵或唯一鍵在表中已經存在,舊的記錄會被更新;如果插入行的主鍵或唯一鍵在表中不存在,會插入這一條記錄。REPLACE是MySQL對SQL標準的擴充套件。
示例①,第二條記錄由於和第一條記錄的主鍵相同,第一條記錄會被更新
示例①,第二條記錄由於和第一條記錄的主鍵相同,第一條記錄會被更新
CREATE TABLE test ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, data VARCHAR(64) DEFAULT NULL, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) );
mysql> REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00'); Query OK, 1 row affected (0.04 sec) mysql> REPLACE INTO test VALUES (1, 'New', '2014-08-20 18:47:42'); Query OK, 2 rows affected (0.04 sec) mysql> SELECT * FROM test;
+----+------+---------------------+ | id | data | ts | +----+------+---------------------+ | 1 | New | 2014-08-20 18:47:42 | +----+------+---------------------+ 1 row in set (0.00 sec)示例②,第二條記錄的主鍵和第一條記錄的主鍵不相同,會將第二條記錄插入到表中,並保留第一條記錄
CREATE TABLE test2 (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
data VARCHAR(64) DEFAULT NULL,
ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id, ts) );
mysql> REPLACE INTO test2 VALUES (1, 'Old', '2014-08-20 18:47:00'); Query OK, 1 row affected (0.05 sec) mysql> REPLACE INTO test2 VALUES (1, 'New', '2014-08-20 18:47:42'); Query OK, 1 row affected (0.06 sec) mysql> SELECT * FROM test2;
+----+------+---------------------+ | id | data | ts | +----+------+---------------------+ | 1 | Old | 2014-08-20 18:47:00 | | 1 | New | 2014-08-20 18:47:42 | +----+------+---------------------+ 2 rows in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2112541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL replace語句MySql
- MYSQL中replace into的用法MySql
- mySQL中replace的用法MySql
- MySQL 5.7 LIMIT語句介紹MySqlMIT
- MySQL 的 EXPLAIN 語句及用法MySqlAI
- 淺析MySQL replace into 的用法MySql
- MySQL 5.7 EXPLAIN EXTENDED語句說明MySqlAI
- MySQL 5.7 的事務控制語句的介紹MySql
- mysql中replace函式的用法MySql函式
- MySQL 5.7 PREPARE、EXECUTE、DEALLOCATE語句介紹MySql
- mysql alter語句用法總結大全MySql
- mysql replace into用法詳細說明MySql
- SQL語句IN的用法SQL
- SQL 語句 as 的用法SQL
- MySQL 5.7 NOT EXISTS用法介紹MySql
- MySQL 5.7 SELECT ... LOCK IN SHARE MODE|FOR UPDATE語句說明MySql
- JavaScript with 語句用法JavaScript
- Oracle Hints語句的用法Oracle
- Python with 語句的用法Python
- MySQL 5.7 使用 SELECT ... INTO 語句匯出資料檔案MySql
- MySQL的語句MySql
- MySQL Order by 語句用法與最佳化詳解MySql
- Oracle Case語句用法Oracle
- Sql Server Rollup 語句的用法SQLServer
- sql宣告變數,及if -else語句、while語句的用法SQL變數While
- mysql的常用語句MySql
- mysql語句MySql
- mysql replaceMySql
- MySQL 5.7 複製控制語句SET GLOBAL sql_slave_skip_counter說明MySql
- MySQL 的Rename Table語句MySql
- Mysql中的DQL語句MySql
- mySql常用語句MySql
- MySQL語句大全MySql
- MYSQL語句集MySql
- MySQL DML語句MySql
- MySQL Dll語句MySql
- Laravel 子查詢語句用法Laravel
- Mysql儲存過程 變數,條件,迴圈語句用法MySql儲存過程變數