最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MYSQL之onduplicatekeyupdate

来源:动视网 责编:小采 时间:2020-11-09 15:16:17
文档

MYSQL之onduplicatekeyupdate

MYSQL之onduplicatekeyupdate:需求: 假如有一张书目表,字段为id,name,count(库存) 现要插入一条新纪录,如果数据库没有这条纪录,插入 若已经存在,则更新库存。 解决方法:mysql 的 on duplicate key update 语法。 下面给出解决过程。 创建测试数据库 mysql CREATE
推荐度:
导读MYSQL之onduplicatekeyupdate:需求: 假如有一张书目表,字段为id,name,count(库存) 现要插入一条新纪录,如果数据库没有这条纪录,插入 若已经存在,则更新库存。 解决方法:mysql 的 on duplicate key update 语法。 下面给出解决过程。 创建测试数据库 mysql CREATE


需求: 假如有一张书目表,字段为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` (
-> `id` int(10) unsigned not null auto_increment,
-> `name` varchar(50) not null,
-> `count` smallint(5) unsigned not null default '0',
-> primary key(`id`),
-> unique key(`name`)
-> ) ENGINE=INNODB DEFAULT CHARSET=utf8 ;
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 | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | |
| books | 0 | name | 1 | name | A | 0 | NULL | NULL | | BTREE | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------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 | count |
+----+---------+-------+
| 1 | windows | 5 |
+----+---------+-------+
1 row in set (0.00 sec)

再次插入windows这本书

mysql> INSERT INTO `books` VALUES ('','windows',1)
-> ON DUPLICATE KEY UPDATE `count` = `count` + VALUES(`COUNT`);
Query OK, 2 rows affected, 1 warning (0.12 sec)

再来查看数据

mysql> select * from books;
+----+---------+-------+
| id | name | count |
+----+---------+-------+
| 1 | windows | 6 |
+----+---------+-------+
1 row in set (0.00 sec)

文档

MYSQL之onduplicatekeyupdate

MYSQL之onduplicatekeyupdate:需求: 假如有一张书目表,字段为id,name,count(库存) 现要插入一条新纪录,如果数据库没有这条纪录,插入 若已经存在,则更新库存。 解决方法:mysql 的 on duplicate key update 语法。 下面给出解决过程。 创建测试数据库 mysql CREATE
推荐度:
标签: 重复 update mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top