加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 5.5 INSERT ON DUPLICATE KEY UPDATE语句解说

发布时间:2022-04-11 18:33:22 所属栏目:MySql教程 来源:互联网
导读:执行INSERT ... ON DUPLICATE KEY UPDATE语句,如果INSERT的语句插入的值和已有的UNIQUE索引或主键重复的话,MySQL会更新已存在的行。 测试没有主键和UNIQUE索引的表 mysql select * from dept2; +--------+-------------+-------------+ | deptno | dname |
        执行INSERT ... ON DUPLICATE KEY UPDATE语句,如果INSERT的语句插入的值和已有的UNIQUE索引或主键重复的话,MySQL会更新已存在的行。
        测试没有主键和UNIQUE索引的表
 
mysql> select * from dept2;
+--------+-------------+-------------+
| deptno | dname       | report_date |
+--------+-------------+-------------+
|     10 | Research    | 2016-06-03  |
|     20 | Maintenance | 2016-06-03  |
|     30 | Leader      | 2016-06-03  |
|     40 | Market      | 2015-08-02  |
+--------+-------------+-------------+
4 rows in set (0.00 sec)
 
mysql> desc dept2;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| deptno      | int(5)      | NO   | MUL | NULL    |       |
| dname       | varchar(14) | YES  |     | NULL    |       |
| report_date | date        | YES  | MUL | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
 
      mysql> INSERT INTO dept2 (deptno,dname,report_date) VALUES (20,'Development','2010-10-30')
         ->   ON DUPLICATE KEY UPDATE report_date='2010-10-30';
     Query OK, 1 row affected (0.01 sec)
  
mysql> select * from dept2;
+--------+-------------+-------------+
| deptno | dname       | report_date |
+--------+-------------+-------------+
|     10 | Research    | 2016-06-03  |
|     20 | Maintenance | 2010-10-30  |
|     30 | Leader      | 2016-06-03  |
|     40 | Market      | 2015-08-02  |
+--------+-------------+-------------+
4 rows in set (0.00 sec)

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读