使用查询 INSERT INTO,并添加默认值
INSERT INTO using a query, and add a default value
我想要 运行 一个 INSERT INTO table SELECT... FROM...
问题是我插入的 table 有 5 列,而我从中选择的 table 只有 4 列。第 5 列需要设置为我指定的默认值。我怎样才能做到这一点?查询将是这样的(注意:这是 Oracle):
INSERT INTO five_column_table
SELECT * FROM four_column_table
--and a 5th column with a default value--;
只需将默认值添加到您的 select 列表中。
INSERT INTO five_column_table
SELECT column_a, column_b, column_c, column_d, 'Default Value'
FROM four_column_table;
只是 select 您 SELECT
列表中的默认值。明确列出列总是一个好主意,所以我在这里这样做,即使这不是绝对必要的。
INSERT INTO five_column_table( col1, col2, col3, col4, col5 )
SELECT col1, col2, col3, col4, 'Some Default'
FROM four_column_table
如果您真的不想列出列
INSERT INTO five_column_table
SELECT fct.*, 'Some Default'
FROM four_column_table fct
Oracle 为此目的支持关键字 DEFAULT
:
insert all
into five_column_table( col1, col2, col3, col4, col5 )
VALUES( col1, col2, col3, col4, DEFAULT)
SELECT col1, col2, col3, col4
FROM four_column_table;
但在你的情况下我不得不使用 multi-table 插入。 DEFAULT
关键字只能在值子句中使用。
我想要 运行 一个 INSERT INTO table SELECT... FROM...
问题是我插入的 table 有 5 列,而我从中选择的 table 只有 4 列。第 5 列需要设置为我指定的默认值。我怎样才能做到这一点?查询将是这样的(注意:这是 Oracle):
INSERT INTO five_column_table
SELECT * FROM four_column_table
--and a 5th column with a default value--;
只需将默认值添加到您的 select 列表中。
INSERT INTO five_column_table
SELECT column_a, column_b, column_c, column_d, 'Default Value'
FROM four_column_table;
只是 select 您 SELECT
列表中的默认值。明确列出列总是一个好主意,所以我在这里这样做,即使这不是绝对必要的。
INSERT INTO five_column_table( col1, col2, col3, col4, col5 )
SELECT col1, col2, col3, col4, 'Some Default'
FROM four_column_table
如果您真的不想列出列
INSERT INTO five_column_table
SELECT fct.*, 'Some Default'
FROM four_column_table fct
Oracle 为此目的支持关键字 DEFAULT
:
insert all
into five_column_table( col1, col2, col3, col4, col5 )
VALUES( col1, col2, col3, col4, DEFAULT)
SELECT col1, col2, col3, col4
FROM four_column_table;
但在你的情况下我不得不使用 multi-table 插入。 DEFAULT
关键字只能在值子句中使用。