我想在同一个表中复制行记录,但对某些列值进行了修改。我知道我可以使用以下脚本复制行记录。
INSERT INTO table_name(
column_name1, column_name2, column_name3 ....
)
SELECT column_name1, column_name2, column_name3 ....
FROM table_name WHERE id=1;
但它会复制整行。对于修改,我还需要添加更新脚本。
所以我的问题是,有没有更简单的方法来处理我的场景。 由于我工作的表有大约40列,所以我认为这种方式是不可行的。
欢迎任何新想法。
提前致谢。
答案 0 :(得分:7)
直接在SELECT中更改列的值,aditional更新是不必要的,就像在下面的示例中一样
INSERT INTO table_name(
column_name1, column_name2, column_name3 ....
)
SELECT column_name1,
'New string value of column 2',
column_name3,
......
......
1234 as new_val_of_col_25,
column_name26,
......
FROM table_name WHERE id=1;