如何重复insert语句n次递增一个值?

问题描述 投票:0回答:1

我有这个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 中执行此操作?

即使不增加天数也可以做到这一点吗?

感谢您的阅读。

sql sqlite
1个回答
0
投票

使用 递归

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;

查看演示

© www.soinside.com 2019 - 2024. All rights reserved.