博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL数据插入和更新的语法
阅读量:7078 次
发布时间:2019-06-28

本文共 1294 字,大约阅读时间需要 4 分钟。

 tag:

经常会遇到一行数据在特定条件下如果存在就更新列,不存在就插入新的行,用replace和duplicate语法都可以实现,但是也是有区别的。如果是数据覆盖就用replace,如果只是想实现update就用duplicate。

如下表:

CREATE TABLE `table1` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `ota_homestay_id` bigint(20) NOT NULL DEFAULT '0',

  `date` date NOT NULL DEFAULT '1970-01-01',

  `price` decimal(10,2) NOT NULL DEFAULT '0.00',

  `state` tinyint(4) NOT NULL DEFAULT '0',

  `inventory` smallint(6) NOT NULL DEFAULT '0',

  `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

  `mtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  PRIMARY KEY (`id`),

  UNIQUE KEY `room_id_date_UNIQUE` (`ota_homestay_id`,`date`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4

这里边有一行数据:

 

replace方案:

replace into table1 (ota_homestay_id, date, price, state, inventory)

values ('10004987159', '2019-03-06', 600, 1, 1);

每次执行ctime和mtime这两个时间字段都会变更,而且相等

duplicate方案

insert into homestay_ota_xiaozhu_price_calendar (ota_homestay_id, date, price, state, inventory)

value ('10004987159', '2019-03-06', 700, 1, 1)

on duplicate key update ota_homestay_id ='10004987159',

                        date            ='2019-03-06',

                        price          =700,

                        state          =1,

                        inventory      =1;

红色部分字段值一般情况下要求一致,特殊情况特殊对待

执行该语句,每次如果有数据就update执行on duplicate key update后面的数据更新。从时间字段上看每次如果有数据更新mtime会变化,没有数据更新mtime不变。和update语句行为一致

 

转载于:https://www.cnblogs.com/JimmyBright/p/10482919.html

你可能感兴趣的文章
Shell 输入/输出重定向
查看>>
go package包的使用
查看>>
MongoDB学习笔记Day3
查看>>
spark学习1(hadoop集群搭建)
查看>>
ABP源码分析三十二:ABP.SignalR
查看>>
复选框提交功能
查看>>
windows 7 64位 安装oracle 11g R2
查看>>
Spring @Resource, @Autowired and @Inject 注入
查看>>
微服务学习笔记二:Eureka服务注册发现
查看>>
获取免费代理推荐
查看>>
bootstrap 不兼容ie8 的问题
查看>>
silverlight 动态类创建和使用
查看>>
BZOJ1010:[HNOI2008]玩具装箱TOY(斜率优化DP)
查看>>
mvn 主要命令说明
查看>>
利用beans.xml进行简单的Spring应用上下文创建与使用
查看>>
jeecg入门操作—菜单管理
查看>>
HDU 2066(dijkstra算法模板题)
查看>>
读取文件操作
查看>>
【SICP练习】24 练习1.30
查看>>
我的CSDN生涯
查看>>