phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Konfigurowanie relacji między tabelami, co robią Cascade, Set Null i Restrict?

CASCADE rozpropaguje zmianę, gdy zmieni się rodzic. (Jeśli usuniesz wiersz, wiersze w ograniczonych tabelach, które odwołują się do tego wiersza, również zostaną usunięte itp.)

SET NULL ustawia wartość kolumny na NULL, gdy wiersz nadrzędny znika.

RESTRICT powoduje niepowodzenie próby usunięcia wiersza nadrzędnego.

EDYCJA:Nie pytałeś o nie, ale standard SQL definiuje dwie inne akcje:SET DEFAULT i NO ACTION . W MySQL:NO ACTION jest odpowiednikiem RESTRICT . (W niektórych DBMS, NO ACTION jest odroczonym testem, ale w MySQL wszystkie kontrole są natychmiastowe.) Parser MySQL akceptuje SET DEFAULT , ale zarówno silniki InnoDB, jak i NDB odrzucają te instrukcje, więc SET DEFAULT nie może być użyty w przypadku ON UPDATE lub ON DELETE ograniczenie.

Pamiętaj też, że kaskadowe działania klawiszy obcych nie aktywują wyzwalaczy w MySQL.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Błąd MySQL w sygnaturze czasowej

  2. Błąd podczas importowania zrzutu MySql w Mysql 5.7

  3. Jak włączyć widok relacji w phpmyadmin

  4. Zaktualizowałem do MariaDB 10.2.20, aby używać CTE. Nadal otrzymujesz typ Unrecognized Statement. (w pobliżu Z) w phpMyAdmin

  5. Jak sprawdzić i naprawić bazę danych w phpMyAdmin