mysql - 插入一行的 SQL 命令 - 但是当 current_timestamp() 存在时,更新它
问题描述
我有这样的 SQL 表
| id (int) | price (float) | date (current_timestamp)|
|----------|---------------|-------------------------|
| 1 | 5.50 | 2021-09-04 |
| 2 | 20.49 | 2021-09-05 |
我需要有关更新行的 SQL 命令的帮助, WHERE date = CURDATE()
但前提是存在带有今天时间戳的行。如果没有,则插入。如何?
解决方案
您可以使用on duplicate key update
. . . 假设您对 id 有唯一索引或约束。
insert into t (id, price, date)
values (?, ?, ?)
on duplicate key update date = values(date);
如果id
不是主键或声明的唯一键,则可以添加约束:
alter table t add constraint unq_t_id unique (id);
推荐阅读
- node.js - 在 MS Bot Framework 中提示无限对话框
- delphi - Delphi 中的“框架二进制文件”是什么?
- vba - 类成员函数在简单范围函数上抛出错误
- c# - 将整数作为 varbinary 发送到 SQL 触发器
- reactjs - ReactJS 多箭头函数
- python - 如何在 Python 中删除列表的标点符号?
- php - 不使用模式将数据传回父页面
- javascript - Webusb API navigator.usb.requestDevice
- python - 在 python 中编辑文件并创建一个新文件
- .net - 如何通过代码实现 .NET Core 性能分析器