CREATE TABLE AS - comment ajouter la colonne avec PK?
-
10-10-2019 - |
Question
Je dois créer une table (base de données intégrée H2) en utilisant des champs d'autres tables. J'ai décidé d'utiliser la déclaration de CREATE TABLE AS
.
Mon code:
CREATE TABLE DOC AS
SELECT I.ID, I.STATUS, A.REMINDERINFORMATION
FROM IE802 I JOIN IE802_ATTRIBUTES A ON A.IE802_ID=I.ID;
Chaque ligne qui est généré à partir du code ci-dessus doit en outre avoir DOCID
PrimaryKey. Comment puis-je ajouter cette colonne et faire l'auto-incrémentation et PK en même temps?
Merci pour les conseils et autres solutions!
Sinon, comment puis-je faire I.ID existant pour être PK?
Je suis toujours obtiens une erreur: la colonne « ID » ne doit pas être annulable; instruction SQL: ALTER TABLE DOC ADD PRIMARY KEY (ID) [90023-147]
La solution
H2 prend en charge les définitions de colonne dans 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;