Java 用于按比例设置行的sql insert语句

Java 用于按比例设置行的sql insert语句,java,mysql,sql,Java,Mysql,Sql,我有一个包含以下数据的表(当然有很多行) 我想做的是一个SQLINSERT,它接受所有具有特定度量id的值 select * from mytable where metric_id=1; 然后使用结果创建具有不同度量_id的新条目,将配额值设置为特定比例。(即:指标id=2配额为指标id=1的50%) 因此,插入后的结束表如下所示 metric_id(int) | employee_id (string) | quota (double) 1 | abcd

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

我想做的是一个
SQL
INSERT
,它接受所有具有特定
度量id的值

select * from mytable where metric_id=1;
然后使用结果创建具有不同度量_id的新条目,将配额值设置为特定比例。(即:指标id=2配额为指标id=1的50%)

因此,插入后的结束表如下所示

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

这可以在一个sql语句中完成吗?如果可能的话,我想使用prepared语句来防止注入。

试试这个。这应该是你需要的

insert into some_table 
(metric_id, employee_id, quota)
select 
2, employee_id, quota * 0.5
from 
some_table 
where
metric_id = 1 
更多替代方式(无需where条款):

insert into some_table 
(metric_id, employee_id, quota)
select 
2, employee_id, quota * 0.5
from 
some_table 
where
metric_id = 1 
INSERT INTO TableName
(metric_id,employee_id,quota)
SELECT metric_id+1,employee_id,quota/2
FROM TableName