2012-03-24 13 views
11

Mam dwie SQL:bazie H2 CREATE TABLE z przymusu

CREATE TABLE legs(legid INT PRIMARY KEY AUTO_INCREMENT NOT NULL, 
        playerid1 INT NOT NULL REFERENCES players(playerid), 
        playerid2 INT NOT NULL REFERENCES players(playerid), 
        added TIMESTAMP AS CURRENT_TIMESTAMP NOT NULL); 

ALTER TABLE legs ADD CONSTRAINT distinct_players CHECK(playerid1 <> playerid2); 

Jestem 99% pewien, że powinienem być w stanie skondensować je w jedno, a mianowicie:

CREATE TABLE table(... 
        playerid2 INT NOT NULL REFERENCES players(playerid) CHECK(playerid1 <> playerid2), 
        ...); 

Jednak jestem konsekwentne uzyskiwanie błędu składni. AFAIK, to tam powinno być ograniczenie.

Odpowiedz

14
CREATE TABLE legs(legid INT PRIMARY KEY AUTO_INCREMENT NOT NULL, 
        playerid1 INT NOT NULL REFERENCES players(playerid), 
        playerid2 INT NOT NULL REFERENCES players(playerid), 
        added TIMESTAMP AS CURRENT_TIMESTAMP NOT NULL, 
        CHECK (playerid1 <> playerid2)); 
+0

Kontrola ograniczenia muszą być w całości w dolnej części tabeli i nie mogą być mieszane z kolumnami, jak ograniczenia CHECK mogą być wymieszane w PostgreSQL. –

Powiązane problemy