Apache Derby:实现'SELECT INTO'行为

时间:2014-06-05 09:33:39

标签: java sql jdbc derby

MS SQL Server中可以将查询结果存储到表中,最重要的是,让查询创建表:

SELECT an_existing_column
INTO table_xyz
FROM an_existing_table

在MySQL中也可以使用:

CREATE TABLE table_xyz
SELECT an_existing_column
FROM an_existing_table

我搜索了Apache Derby Reference Guide,看不到实现类似行为的方法。

有没有人知道Apache Derby中是否可能这样做?

2 个答案:

答案 0 :(得分:6)

将查询结果存储到表中:

INSERT INTO table_xyz (an_existing_column) SELECT an_existing_column FROM an_existing_table;

从另一个表创建一个表:

所有专栏:

CREATE TABLE table_xyz AS SELECT * FROM an_existing_table WITH NO DATA;

特定栏目:

CREATE TABLE table_xyz AS SELECT an_existing_column FROM an_existing_table WITH NO DATA;

答案 1 :(得分:1)

它在JAVA DB中不起作用,正确的方法是:

对于所有列:

步骤1:创建具有不同名称的新表。例如, my_new_table

CREATE TABLE my_new_table AS SELECT * FROM original_table WITH NO DATA;

此语句以相同格式从原始表创建新表,并且不复制任何数据。需要指定WITH NO DATA,因为它会创建一个具有相同列的新表。

第2步:使用INSERT INTO将数据从 orig_table 复制到 my_new_table

INSERT INTO my_new_table  SELECT * FROM orig_table.

然后您将复制所有数据。