我有这个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 中执行此操作?
即使不增加天数也可以做到这一点吗?
感谢您的阅读。
使用 递归
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;
查看演示。