想知道是否有一种方法可以将一行插入另一个表中,但一列除外?
对于有限数量的列来说,这当然很容易,但是当列数增加时,会列出所有列的疲惫.
我正在考虑以下方面:
Insert into table
select * replace col1 with current date
from table
where yada yada yada
Run Code Online (Sandbox Code Playgroud)
一种可能性是复制一行并执行和更新,但是,假设由于索引或其他原因,这不是一个选项.
有任何想法吗?
编辑:这是DB2 v10,但问题出于纯粹的好奇心.只是想知道是否可能......
taa*_*ari 16
您可以使用临时表
CREATE TEMPORARY TABLE temp_table AS (SELECT * FROM MyTable WHERE ...);
Run Code Online (Sandbox Code Playgroud)
UPDATE temp_table SET column='Value' WHERE ...;
Run Code Online (Sandbox Code Playgroud)
ALTER TABLE temp_table DROP column_name;
Run Code Online (Sandbox Code Playgroud)
INSERT INTO MyDestinationTable SELECT * FROM temp_table;
Run Code Online (Sandbox Code Playgroud)
And*_*mar 10
对于SQL Server,语法为:
insert into TargetTable
(col1, col2, col3, ...)
select getdate(), col2, col3, ...
from SourceTable
Run Code Online (Sandbox Code Playgroud)
SQL Server可以为您生成列列表.右键单击表名,然后选择Script as -> Select -> To New Window
.
小智 3
使用甲骨文
DECLARE
CURSOR CUR_D IS
SELECT *
FROM TABLE
WHERE id = some id;
ROW_D CUR_D%ROWTYPE;
BEGIN
OPEN CUR_D;
FETCH CUR_D INTO ROW_D;
CLOSE CUR_D;
ROW_D.column := 'some data';
INSERT INTO some table
VALUES ROW_D;
END;
/
Run Code Online (Sandbox Code Playgroud)