ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint. – MySQL 1701

1701

L'operazione DDL ad alte prestazioni `TRUNCATE TABLE` è vietata sulle tabelle referenziate da chiavi esterne attive di altre tabelle; richiede l'esecuzione di `DELETE FROM tabella` oppure la disabilitazione temporanea con `FOREIGN_KEY_CHECKS=0`.

Cosa significa questo errore?

L'operazione DDL ad alte prestazioni `TRUNCATE TABLE` è vietata sulle tabelle referenziate da chiavi esterne attive di altre tabelle; richiede l'esecuzione di `DELETE FROM tabella` oppure la disabilitazione temporanea con `FOREIGN_KEY_CHECKS=0`.

Messaggio originale

ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint.

Contesto e parole chiave

Alias

  • 1701
  • ER_TRUNCATE_ILLEGAL_FK

Messaggi alternativi

  • impossibile eseguire truncate su tabella referenziata da vincolo foreign key

Prodotti

  • MySQL Server / Percona Server / MariaDB / InnoDB Engine

Piattaforme

  • Linux
  • macOS
  • Multipiattaforma
  • Windows Server

Parole chiave

  • 1701
  • database
  • errore-mysql-1701-cannot-truncate-table-referenced-by-foreign-key
  • innodb
  • mysql
  • mysql.tabelle.1701-cannot-truncate-referenced-by-fk
  • Tabelle e Storage

Cause possibili

Origine del problema per MySQL: Errore 1701 — TRUNCATE non consentito su tabella con Foreign Key

L'operazione DDL ad alte prestazioni `TRUNCATE TABLE` è vietata sulle tabelle referenziate da chiavi esterne attive di altre tabelle; richiede l'esecuzione di `DELETE FROM tabella` oppure la disabilitazione temporanea con `FOREIGN_KEY_CHECKS=0`.

molto comune

Diagnosi

Ispezione diagnostica MySQL per MySQL: Errore 1701 — TRUNCATE non consentito su tabella con Foreign Key

Eseguire comandi di controllo di stato nel client MySQL o consultare il file di log degli errori /var/log/mysql/error.log.

Come leggere il risultato. Mostra lo stato interno di lock, transazioni in corso o errori di allocazione e vincoli relazionali.

mysql
SHOW ENGINE INNODB STATUS\G

Risoluzione

Procedura di risoluzione per MySQL: Errore 1701 — TRUNCATE non consentito su tabella con Foreign Key

Difficoltà: mediaRischio: basso

Applicare la correzione al database o alla query secondo le best practice di amministrazione MySQL.

  1. Ispezionare la sintassi della query o la configurazione delle variabili
  2. Regolare i parametri in my.cnf o correggere i vincoli DDL
  3. Testare nuovamente la connessione o l'esecuzione della transazione

Domande frequenti

Come risolvere il codice 1701 in MySQL?

L'operazione DDL ad alte prestazioni `TRUNCATE TABLE` è vietata sulle tabelle referenziate da chiavi esterne attive di altre tabelle; richiede l'esecuzione di `DELETE FROM tabella` oppure la disabilitazione temporanea con `FOREIGN_KEY_CHECKS=0`.

Approfondimenti

Schede correlate