sql >> Database teknologi >  >> RDS >> Mysql

MySQL på slette kaskade. Test eksempel

Svar d. er korrekt, hvis og kun hvis lagermotoren faktisk understøtter og håndhæver begrænsninger for fremmednøgle.

Hvis tabellerne er oprettet med Engine=MyISAM , så hverken b. eller d. er korrekt.

Hvis tabellerne er oprettet med Engine=InnoDB , derefter d. er korrekt.

BEMÆRK:

Dette gælder for InnoDB, hvis og kun hvis FOREIGN_KEY_CHECKS = 1; hvis FOREIGN_KEY_CHECKS = 0 , derefter en DELETE fra den overordnede tabel (foo) vil ikke fjern rækker fra den underordnede tabel (foo2), der refererer til en række, der er fjernet fra den overordnede tabel.

Bekræft dette med outputtet fra SHOW VARIABLES LIKE 'foreign_key_checks' (1=TIL, 0=FRA)(Den normale standard er, at dette er TIL.)

Outputtet fra SHOW CREATE TABLE foo vil vise hvilken motor tabellen bruger.

Outputtet fra SHOW VARIABLES LIKE 'storage_engine' vil vise standardmotoren, der bruges, når en tabel oprettes, og motoren ikke er angivet.



  1. Sådan aktiverer du SQL Server Agent XP'er ved hjælp af T-SQL

  2. SCOPE_IDENTITY() for GUID'er?

  3. Sådan deaktiveres indstillingen only_full_group_by i Laravel

  4. postgres omdøb databasen virker ikke