我有一个包含以下数据的表(当然有很多行)。

metric_id(int) | employee_id (string) | quota (double)
1              | abcd                 | 100
1              | wxyz                 | 120

我要做的是一个SQLINSERT它接受所有具有特定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

10-08 17:22