我有一个包含以下数据的表(当然有很多行)。
metric_id(int) | employee_id (string) | quota (double)
1 | abcd | 100
1 | wxyz | 120
我要做的是一个
SQL
INSERT
它接受所有具有特定metric_id
的值。select * from mytable where metric_id=1;
然后使用结果创建具有不同度量id的新条目,这些条目将按特定比例设置配额值。(即:metric_id=2配额是metric_id=1的50%)
所以插入后的结束表看起来像
metric_id(int) | employee_id (string) | quota (double)
1 | abcd | 100
1 | wxyz | 120
2 | abcd | 50
2 | wxyz | 60
这可以在一个sql语句中完成吗?如果可能的话,我想用准备好的声明来防止注射。
最佳答案
试试这个。它应该是你所需要的。
insert into some_table
(metric_id, employee_id, quota)
select
2, employee_id, quota * 0.5
from
some_table
where
metric_id = 1