sqlite 如何重复插入语句n次递增一个值?

cvxl0en2  于 2023-10-23  发布在  SQLite
关注(0)|答案(1)|浏览(150)

我有这个SQL语句:

INSERT INTO `results` (batch_id, workstation_id, result, received, log_time) 
VALUES (281, 13, ABS(RANDOM()) % (232.91 - 69.87) + 69.87,
        DATETIME('now', '+1 day', 'localtime') ,
        DATETIME('now', 'localtime'));

我想通过增加天数来执行此语句n次,例如30次。
可以直接在SQL中实现吗?
即使不增加天数也能做到这一点吗?
谢谢你的阅读。

zaq34kh6

zaq34kh61#

使用递归CTE,你可以得到一个30行的结果集,你可以在INSERT语句中使用:

WITH cte(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 30)
INSERT INTO `results` (batch_id, workstation_id, result, received, log_time) 
SELECT 281, 
       13, 
       ABS(RANDOM()) % (232.91 - 69.87) + 69.87,
       DATETIME('now', n || ' day', 'localtime'),
       DATETIME('now', 'localtime')
FROM cte;

参见demo

相关问题