在使用 INSERT INTO 语句时填写 table 的 NOT NULL 列
Fill in the NOT NULL columns of a table while using the INSERT INTO statement
我正在解决一个问题,我需要使用 select 语句将 135 行插入到最近创建的 table 中。我对该 table 有一些 NOT NULL 约束,我不明白如何更改我的 SELECT 以插入正确的信息。
这是我正在尝试做的事情:
CREATE SEQUENCE target_table_s1 START WITH 1001;
INSERT INTO target_table(colA,ColB,ColC,ColD,ColE)
target_table_s1.NEXTVAL,
(SELECT (colB,colC,ColD)
FROM source_table),
colE;
其中 colA 是序列号(为 target_table 提供主键),colE 基本上只需要像 SYSDATE 这样简单的东西。
关于如何使这项工作有任何建议吗?我知道我上面写的是行不通的,但这是我能说明我正在努力完成的事情的最好方式。我是否需要找到一种方法将我的序列放入 select 语句中,使其遵循正确的 "INSERT INTO SELECT" 格式?
我认为你应该在这里使用 INSERT INTO ... SELECT
构造:
INSERT INTO target_table (colA,ColB,ColC,ColD,ColE)
SELECT target_table_s1.NEXTVAL, ColB, ColC, ColD, SYSDATE
FROM source_table
我在上面假设您想将 SYSDATE
插入 E 列。
我正在解决一个问题,我需要使用 select 语句将 135 行插入到最近创建的 table 中。我对该 table 有一些 NOT NULL 约束,我不明白如何更改我的 SELECT 以插入正确的信息。
这是我正在尝试做的事情:
CREATE SEQUENCE target_table_s1 START WITH 1001;
INSERT INTO target_table(colA,ColB,ColC,ColD,ColE)
target_table_s1.NEXTVAL,
(SELECT (colB,colC,ColD)
FROM source_table),
colE;
其中 colA 是序列号(为 target_table 提供主键),colE 基本上只需要像 SYSDATE 这样简单的东西。
关于如何使这项工作有任何建议吗?我知道我上面写的是行不通的,但这是我能说明我正在努力完成的事情的最好方式。我是否需要找到一种方法将我的序列放入 select 语句中,使其遵循正确的 "INSERT INTO SELECT" 格式?
我认为你应该在这里使用 INSERT INTO ... SELECT
构造:
INSERT INTO target_table (colA,ColB,ColC,ColD,ColE)
SELECT target_table_s1.NEXTVAL, ColB, ColC, ColD, SYSDATE
FROM source_table
我在上面假设您想将 SYSDATE
插入 E 列。