1


他のテーブルのフィールドを使用してテーブル(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;

上記のコードから生成される各行には、さらにDOCIDPrimaryKeyが必要です。この列を追加して、自動インクリメントとPKを同時に行うにはどうすればよいですか?

ヒントやその他の解決策をありがとう!

または、既存のI.IDをPKにするにはどうすればよいですか?

それでもエラーが発生します。列「ID」はNULL可能であってはなりません。SQLステートメント:ALTER TABLE DOC ADD PRIMARY KEY(ID)[90023-147]

4

1 に答える 1

1

H2は、CREATEASSELECTの列定義をサポートしています。

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;
于 2010-12-15T13:31:20.727 に答える