Mi sto interrogando su questa domanda di prova. Ho preparato l'esempio da solo e l'ho provato, ma continuo a non essere sicuro della risposta.MySQL su delete cascade. Esempio di prova
Con la seguente:
CREATE TABLE foo (
id INT PRIMARY KEY AUTO_INCREMENT,
name INT
)
CREATE TABLE foo2 (
id INT PRIMARY KEY AUTO_INCREMENT,
foo_id INT REFERENCES foo(id) ON DELETE CASCADE
)
Per quanto posso vedere la risposta è:
a. Due tabelle vengono create
Anche se ci sono anche:
b. Se una riga nella tabella foo2, con un foo_id di 2 è soppresso, poi la riga con id = 2 nella foo tabella viene cancellato automaticamente
d.If una riga con id = 2 nella tabella è soppressa foo, tutte le righe con foo_id = 2 nella tabella foo2 vengono eliminate
Nel mio esempio avrei usato la sintassi di eliminazione:
DELETE FROM foo WHERE id = 2;
DELETE FROM foo2 WHERE foo_id = 2;
per qualche motivo non sono riuscito a trovare alcuna relazione tra le tabelle anche se sembra come dovrebbe essercene uno Forse c'è qualche impostazione MySQL o forse è ON DELETE CASCADE
non usato correttamente nelle query di creazione della tabella? Mi chiedo ...
notevole differenza tra 'MyISAM' e' InnoDB' per la correttezza di ** b ** – JalalJaberi
Hai ragione. Era ** d **. perdonami per quello. – JalalJaberi