提问人:1966bc 提问时间:10/15/2023 最后编辑:forpas1966bc 更新时间:10/16/2023 访问量:54
如何重复插入语句n次递增一个值?
How to repeat insert statement n times incrementing a value?
问:
我有这个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 中执行此操作?
即使不增加天数,也可以做到这一点吗?
感谢您的阅读。
答:
1赞
forpas
10/15/2023
#1
使用递归 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;
观看演示。
评论
0赞
1966bc
10/16/2023
非常感谢,你的回答给我留下了深刻的印象,恭喜你的知识....;)
评论