2010-12-15 122 views
1


我必須使用其他表中的字段創建表(H2嵌入數據庫)。我決定使用CREATE TABLE AS聲明。CREATE TABLE AS - 如何用PK添加列?

我的代碼:
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]

+0

'ALTER TABLE DOC ALTER COLUMN ID BIGINT NOT NULL' 解決了我錯誤。 – monczek 2010-12-15 12:54:42

+0

如果您回答了您自己的問題,請發佈答案並將其標記爲已接受。但是,我沒有看到您的評論中的聲明如何回答您的問題的這一部分:「我如何添加此列並同時使其自動增量和PK?」 – Tony 2010-12-15 12:58:34

+0

上面的這一行代碼只能排除錯誤:列「ID」不能爲空; – monczek 2010-12-15 13:37:37

回答

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; 
+0

謝謝!這正是我需要的:) – monczek 2010-12-15 13:44:04