CREATE TABLE AS - как добавить колонку с PK? - PullRequest
1 голос
/ 15 декабря 2010


Мне нужно создать таблицу (встроенную базу данных 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 Ответ

1 голос
/ 15 декабря 2010

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;
...