CREATE TABLE AS - 如何用PK添加列?

时间:2010-12-15 12:44:58

标签: sql primary-key h2 create-table


我必须使用其他表中的字段创建一个表(H2嵌入式数据库)。我决定使用CREATE TABLE AS声明。

我的代码:
CREATE TABLE DOC AS
SELECT I.ID, I.STATUS, A.REMINDERINFORMATION
FROM IE802 I JOIN IE802_ATTRIBUTES A ON A.IE802_ID=I.ID;

从上面的代码生成的每一行还必须有DOCID PrimaryKey。如何添加此列并同时使其自动增量和PK?

感谢您提供任何提示和其他解决方案!

或者,我怎样才能使现有的I.ID成为PK?

我仍然收到错误:列“ID”不能为空; SQL语句: ALTER TABLE DOC ADD PRIMARY KEY(ID)[90023-147]

1 个答案:

答案 0 :(得分:1)

H2支持CREATE AS SELECT中的列定义:

CREATE TABLE DOC(
    ID INT PRIMARY KEY, 
    STATUS INT, 
    REMINDERINFORMATION VARCHAR(255)
) 
AS SELECT I.ID, I.STATUS, A.REMINDERINFORMATION
FROM IE802 I JOIN IE802_ATTRIBUTES A ON A.IE802_ID=I.ID;