使用查询 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 关键字只能在值子句中使用。