gpt4 book ai didi

SQLite:仅当价格与最后一行不同时插入

转载 作者:行者123 更新时间:2023-12-01 16:26:05 25 4
gpt4 key购买 nike

我有一个包含 2 列的 SQLite 简单表:

timestamp |last_price
1419873093|900.0
1419874283|900.0
1419940915|900.0
1419946324|916.58
1419946981|914.46
1419947981|800.0

仅当价格与最后一行价格不同时,我才想插入新值(我不希望连续价格相同)。我可以使用以下方法获取最后一行的价格:

SELECT last_price FROM BTC_BRL order by rowid desc limit 1;

然后我将其与新价格进行比较,但如果我可以直接在 SQL 语句中执行此操作,会更好更快。

我尝试使用 CASE WHEN,但没有成功。

谢谢!

最佳答案

好的,这是解决方案:

解决方案是使用 VIEW 和 TRIGGER:

1)首先我们创建一个包含最后一行的 View :

CREATE VIEW [BTC_BRL-VIEW] AS SELECT timestamp,last_price
FROM [BTC_BRL] order by rowid desc limit 1;

2) 然后我们使用 INSTEAD OF 创建一个触发器:

CREATE TRIGGER [BTC_BRL-TRIGGER] INSTEAD OF INSERT 
ON [BTC_BRL-VIEW]

WHEN new.last_price NOT IN (SELECT last_price FROM
[BTC_BRL-VIEW])

BEGIN INSERT INTO [BTC_BRL] values(new.timestamp,new.last_price);
END;

3)最后我们可以插入:

INSERT INTO [BTC_BRL-VIEW] values(1419991328,925.47);

就是这样!仅当最后价格与last_price(来自VIEW)不同时,它才会插入。我希望它也对其他人有帮助;)

关于SQLite:仅当价格与最后一行不同时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com