【问题标题】:SELECT INTO with HSQLDB使用 HSQLDB 选择 INTO
【发布时间】:2014-04-09 02:14:44
【问题描述】:

我正在尝试根据选择结果创建一个新表。这适用于 SQL Server:

SELECT * INTO newTable FROM (SELECT col1, col2, col3 FROM oldTable) x;

现在,我想用 HSQLDB(2.2 版)实现完全相同的功能。我尝试了几种形式,例如

SELECT * INTO newTable FROM (SELECT col1, col2, col3 FROM oldTable);
SELECT INTO newTable FROM SELECT col1, col2, col3 FROM oldTable;
CREATE TABLE newTable AS SELECT col1, col2, col3 FROM oldTable;

所有这些变体都会导致某种形式的语法错误。如何使用 HSQLDB 从选择中创建表?

【问题讨论】:

    标签: sql database select hsqldb


    【解决方案1】:

    好的,我找到了更简单的方法。

    select * into t_bckp FROM t;
    

    这很有趣。

    【讨论】:

    • 对我不起作用:SQL Error [42581]: unexpected token: INTO required: FROM
    • 检查您的驱动程序版本。我正在使用 HsqlDB server-2.3.3 和驱动程序类 org.hsqldb.jdbc.JDBCDriver。
    【解决方案2】:

    manual has an example

    CREATE TABLE t (a, b, c) AS (SELECT * FROM atable) WITH DATA
    

    HSQLDB 需要括号括起来(与所有其他 DBMS 不同),它还需要 WITH DATA 子句

    【讨论】:

    • 太棒了!我错过了WITH DATA 部分,只是找不到任何文档如何做到这一点。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 2018-09-04
    • 2012-06-01
    • 2013-08-05
    • 2011-10-10
    • 2019-01-10
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多