我正在尝试使用来自其他2个表的记录来填充新表.
period_states是new/empty
period_states
id
period_id
sla_id
Run Code Online (Sandbox Code Playgroud)
期间 - 包含15条记录
periods
id
Run Code Online (Sandbox Code Playgroud)
slas - 包含84条记录
slas
id
Run Code Online (Sandbox Code Playgroud)
我需要在每个现有的sla_id中填充period_states,每个sla_id都有一个exiting period_id.所以,最终在period_states中应该有1260条记录.
知道如何自动化吗?手动填充将是一场噩梦......
先感谢您!!
如果将id句点状态列定义为AUTO_INCREMENT,那么这应该有效:
INSERT INTO period_states (period_id, sla_id)
SELECT p.id AS period_id
, s.id AS sla_id
FROM periods p
CROSS
JOIN slas s
Run Code Online (Sandbox Code Playgroud)
这是一个为id列提供值的方法的示例:
INSERT INTO period_states (id, period_id, sla_id)
SELECT @myid := @myid + 1 AS id
, p.id AS period_id
, s.id AS sla_id
FROM periods p
CROSS
JOIN slas s
CROSS
JOIN (SELECT @myid := 0) m
Run Code Online (Sandbox Code Playgroud)
INSERT INTO period_states
(period_id, sla_id)
SELECT periods.id, slas.id
FROM periods
CROSS JOIN slas
Run Code Online (Sandbox Code Playgroud)