You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何实现存在今日时间戳行则更新、不存在则新增的需求

SQL 插入更新(Upsert)需求实现方案

首先你需要先为date字段添加唯一索引,这是实现冲突判断的前提,语句如下:

CREATE UNIQUE INDEX idx_unique_date ON 你的表名(`date`);

不同数据库的实现语法

1. MySQL

直接使用INSERT ... ON DUPLICATE KEY UPDATE语法,示例如下(假设需要更新的price值为10.99,可替换为实际业务值):

INSERT INTO 你的表名 (price, `date`)
VALUES (10.99, CURDATE())
ON DUPLICATE KEY UPDATE price = 10.99;

如果需要基于原有值做计算更新,比如今日价格上涨2元,可将UPDATE部分改为price = price + 2。

2. PostgreSQL / SQLite

使用INSERT ... ON CONFLICT语法实现:

INSERT INTO 你的表名 (price, "date")
VALUES (10.99, CURRENT_DATE)
ON CONFLICT ("date") DO UPDATE SET price = 10.99;

3. SQL Server

使用MERGE语法实现:

MERGE INTO 你的表名 AS target
USING (VALUES (10.99, CAST(GETDATE() AS DATE))) AS source (price, [date])
ON target.[date] = source.[date]
WHEN MATCHED THEN
    UPDATE SET target.price = source.price
WHEN NOT MATCHED THEN
    INSERT (price, [date])
    VALUES (source.price, source.[date]);

注意:所有语句中的你的表名需要替换为实际数据表名称,price取值可根据业务需求调整,也可配合自定义变量使用。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:30:04