2011-12-16 30 views
12

Ho molte tabelle con vincoli di relazione. Le tabelle contengono tutti i dati fittizi, vorrei troncare/svuotare i dati dalle tabelle mantenendo la struttura.Disabilita temporaneamente i vincoli

Ogni volta che voglio svuotare un tavolo, ottengo errori di vincolo di chiave esterna. Cosa posso fare per disattivare temporaneamente il vincolo e quindi abilitarlo di nuovo una volta eliminati i dati fittizi.

Ho provato questa soluzione, ma non ha funzionato! Una volta a disattivare, quindi provare a troncare, ottengo errore di vincolo fk ...

//disable 
SET FOREIGN_KEY_CHECKS = 0; 


//enable 
SET FOREIGN_KEY_CHECKS = 1; 

sto usando MySQL.

Qualche idea?

risposta

7

È necessario rimuovere l'FK se si desidera utilizzare truncate, come troncato non un'operazione registrata.

Può utilizzare delete con FK in posizione ma eliminare è un'operazione registrata e richiede più tempo.

+0

Buon punto. Non lo sapevo ... – user311509

3

Inizio alla fine (tabelle che sono solo FK) e non referenziato da nessun altro racconto. Quelli che puoi troncare. Quindi vai su e cancella. Se tronchi/cancelli nell'ordine corretto, non violerai i contraffatti. O potresti abbandonare tutte le tende. Tronca i tavoli. Quindi aggiungere nuovamente i punti di riferimento.

Problemi correlati