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]

Était-ce utile?

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top