sql >> Databáze >  >> Database Tools >> phpMyAdmin

Nastavení vztahů mezi tabulkami co dělají Cascade, Set Null a Restrict?

CASCADE bude propagovat změnu, když se změní rodič. (Pokud odstraníte řádek, budou odstraněny také řádky v tabulkách s omezeními, které na tento řádek odkazují atd.)

SET NULL nastaví hodnotu sloupce na NULL, když nadřazený řádek zmizí.

RESTRICT způsobí, že pokus o DELETE nadřazeného řádku selže.

EDIT:Neptali jste se na ně, ale standard SQL definuje dvě další akce:SET DEFAULT a NO ACTION . V MySQL NO ACTION je ekvivalentní RESTRICT . (V některých systémech DBMS NO ACTION je odložená kontrola, ale v MySQL jsou všechny kontroly okamžité.) Analyzátor MySQL přijímá SET DEFAULT , ale motory InnoDB i NDB tato prohlášení odmítají, takže SET DEFAULT nelze ve skutečnosti použít ani pro ON UPDATE nebo ON DELETE omezení.

Všimněte si také, že kaskádové akce cizího klíče neaktivují spouštěče v MySQL.



  1. Výchozí datum a čas MySQL prostřednictvím phpmyadmin

  2. Phpmyadmin Problém s exportem/importem s konce řádků

  3. Vyhledávání v databázi pomocí phpMyAdmin

  4. Odkud jsou všechny ty relace SQL Serveru?