MYSQL 之 on duplicate key update
需求: 假如有一张书目表,字段为id,name,count(库存) 现要插入一条新纪录,如果数据库没有这条纪录,插入 若已经存在,则更新库存。 解决方法:mysql 的 on duplicate key update 语法。 下面给出解决过程。 创建测试数据库 mysql CREATE DATABASE `tes
需求:
假如有一张书目表,字段为id,name,count(库存)
现要插入一条新纪录,如果数据库没有这条纪录,插入
若已经存在,则更新库存。
解决方法:mysql 的 on duplicate key update 语法。
下面给出解决过程。
创建测试数据库
mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.14 sec)
mysql> use test;
Database changed
创建测试数据表
mysql> CREATE TABLE IF NOT EXISTS `books` (
Query OK, 0 rows affected (0.79 sec)
查看索引信息
mysql> show index from books;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| books |
| books |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------2 rows in set (0.00 sec)
插入第一条测试数据
mysql> INSERT INTO `books` VALUES ('','windows',5);
Query OK, 1 row affected, 1 warning (0.04 sec)
查看数据
mysql> select * from books;
+----+---------+-------+
| id | name
+----+---------+-------+
|
+----+---------+-------+
1 row in set (0.00 sec)
再次插入windows这本书
mysql> INSERT INTO `books` VALUES ('','windows',1)
Query OK, 2 rows affected, 1 warning (0.12 sec)
再来查看数据
mysql> select * from books;
+----+---------+-------+
| id | name
+----+---------+-------+
|
+----+---------+-------+
1 row in set (0.00 sec)
推荐阅读
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法
-
Mysql中Insert into xxx on duplicate key update问题
-
mysql #1062 –Duplicate entry '1' for key 'PRIMARY'
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )
-
MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表
-
mysql 中 replace into 与 insert into on duplicate key update 的用法和不同点实例分析
-
MySQL 查询优化之 Block Nested-Loop 与 Batched Key Access Joins
-
MySQL学习记录之KEY分区引发的血案