Dodanie klucza podstawowego w tabeli stanowiska
na polu id_stanowiska
.
ALTER TABLE stanowiska ADD PRIMARY KEY(id_stanowiska)
Dodanie indeksu (przygotowanie pod klucz obcy) w tabeli pracusie
na polu id_stanowiska
.
ALTER TABLE pracusie ADD INDEX(id_stanowiska)
Definiowanie klucza obcego i powiązanie tabeli pracusie
z tabelą stanowiska
.
ALTER TABLE pracusie ADD CONSTRAINT integro
FOREIGN KEY (id_stanowiska)
REFERENCES rel1.stanowiska(id_stanowiska)
ON DELETE RESTRICT ON UPDATE RESTRICT;
ON DELETE RESTRICT
: Nie pozwoli usunąć rekordu z tabeli nadrzędnej (stanowiska
), jeśli istnieją powiązane rekordy w tabeli podrzędnej (pracusie
).
ON UPDATE RESTRICT
: Nie pozwoli zaktualizować wartości klucza podstawowego w tabeli nadrzędnej, jeśli istnieją powiązane rekordy w tabeli podrzędnej.
Zapytanie do obu tabel celem wyświetlenia: imię, nazwisko, stanowisko.
SELECT imie, nazwisko, stanowisko FROM stanowiska
JOIN
Pracusie ON stanowiska.id_stanowiska = pracusie.id_stanowiska
a) Wyłączenie integralności (usunięcie constraintu):
ALTER TABLE pracusie DROP FOREIGN KEY integro;
Po tej operacji można również usunąć indeks, jeśli nie jest już potrzebny: ALTER TABLE pracusie DROP INDEX id_stanowiska;
(opcjonalnie, nie było w treści źródłowej).
Usuwanie klucza podstawowego z tabeli stanowiska
:
ALTER TABLE stanowiska DROP PRIMARY KEY;
Wyłączenie/włączenie globalnego sprawdzania więzów integralności dla kluczy obcych.
SET FOREIGN_KEY_CHECKS = 0; -- Wyłączenie sprawdzania
SET FOREIGN_KEY_CHECKS = 1; -- Włączenie sprawdzania
SET FOREIGN_KEY_CHECKS = 0;
jest przydatne podczas operacji masowych, np. importu danych, aby uniknąć błędów związanych z kolejnością wstawiania rekordów do powiązanych tabel. Pamiętaj, aby zawsze przywrócić sprawdzanie (SET FOREIGN_KEY_CHECKS = 1;
) po zakończeniu takich operacji.