CREATE TABLE i ograniczenia

Utwórz nową tabelę i ustal reguły, jakim muszą podlegać jej dane.

Składnia

CREATE TABLE name (column type [PRIMARY KEY] [NOT NULL] [UNIQUE] [DEFAULT value] [REFERENCES other (column)] [GENERATED ALWAYS AS IDENTITY]);
CREATE TABLE name AS SELECT ...;
  • PRIMARY KEY: unikalny i wymagany.
  • REFERENCES: wartość musi istnieć w drugiej tabeli.
  • UNIQUE zabrania powtórzeń w kolumnie, która nie jest kluczem głównym.
  • GENERATED ALWAYS AS IDENTITY wypełnia klucz całkowity za ciebie (MySQL: AUTO_INCREMENT; SQL Server: IDENTITY).
  • CREATE TABLE AS SELECT kopiuje zapytanie do nowej tabeli. Inne bazy często używają SELECT INTO.

Przykład

CREATE TABLE notes (note_id integer PRIMARY KEY, body text NOT NULL, order_id integer REFERENCES orders (order_id));

Nowa tabela; baza odrzuca wpis, który odwołuje się do nieistniejącego zamówienia.

Użyte tabele: orders. Wypróbuj to w lekcji poniżej.

Typowe błędy

  • Klucz obcy sprawdza się tylko przy zmianach wierszy. Usunięcie klienta, który ma jeszcze zamówienia, zostanie odrzucone, jeśli zamówienia się do niego odwołują.
  • CREATE TABLE AS kopiuje dane, nie klucz główny ani inne ograniczenia. Dodaj je potem, jeśli ich potrzebujesz.

Ćwicz to