是否可以为具有修改后的值的同一个表创建INSERT SELECT语句,并为其余列创建通配符?
我成功获取了具有修改后的值的select插入语句。但不可以使用通配符。我想避免不得不为每一列命名。
V_是变量:)
我想要的方式。
INSERT INTO Table_1 (
T1.ID,
T1.NAME,
T1.SITE,
T1.*)
SELECT T1.V_DE_SITE,
T1.V_NAME,
T1.V_SITE,
T1.*
FROM Table_1 AS T1 WHERE T1.ID = V_SO_SITE;
以下是我可能做的,但是没有通配符! :(该表还有更多列
INSERT INTO Table_1 (
ID,
NAME,
SITE)
SELECT V_DE_SITE,
V_NAME,
V_SITE
FROM Table_1 WHERE ID = V_SO_SITE;
[如果省略目标表的列名规范,并确保select
语句的列数与目标表中的列数相同,并且对应的列数据类型兼容,则是可能的。
CREATE TABLE TEST_COLUMNS AS (
SELECT CURRENT TIMESTAMP TS, C.* FROM SYSCAT.COLUMNS C
) DEFINITION ONLY IN USERSPACE1
;
INSERT INTO TEST_COLUMNS
SELECT CURRENT TIMESTAMP TS, C.* FROM SYSCAT.COLUMNS C
;
您可以使用以下方法检查表元数据:
SELECT COLNO, COLNAME, TYPENAME, LENGTH
FROM SYSCAT.COLUMNS
WHERE TABSCHEMA=CURRENT SCHEMA AND TABNAME='TEST_COLUMNS'
ORDER BY COLNO;