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.