Aby podczas tworzenia tabeli zdefiniować klucz obcy na wielu kolumnach, należy użyć zapisu:
Źle. Brak nazwy ograniczenia i kolumn po
FOREIGN KEY - składnia niepoprawna.Źle. Przestawione słowa kluczowe - powinno być
FOREIGN KEY ... REFERENCES.Dobrze. Poprawny zapis: nazwa,
FOREIGN KEY(kolumny) i REFERENCES tabela(kolumny).Źle. Po
FOREIGN KEY nie stawia się ON - kolumny podaje się od razu w nawiasie.Złożony (wielokolumnowy) klucz obcy definiuje się wzorem
CONSTRAINT nazwa FOREIGN KEY(kol1, kol2) REFERENCES tabela(kol1, kol2). Po FOREIGN KEY w nawiasie wymienia się kolumny tabeli bieżącej, a po REFERENCES - tabelę nadrzędną i odpowiadające jej kolumny. Dlatego poprawny jest zapis z nazwą ograniczenia, FOREIGN KEY(...) i REFERENCES tabela(...).Pozostałe zapisy łamią składnię definicji klucza obcego. W dwóch brakuje listy kolumn zaraz po
FOREIGN KEY albo przestawiono słowa kluczowe (FOREIGN REFERENCES KEY zamiast FOREIGN KEY ... REFERENCES) - serwer odrzuci je jako błąd. W jeszcze innym po FOREIGN KEY dopisano zbędne ON, którego w tej konstrukcji nie ma. Prawidłowy wielokolumnowy klucz obcy to CONSTRAINT nazwa FOREIGN KEY(kolumny) REFERENCES tabela(kolumny), dlatego to ten zapis jest poprawny.