Domanda

Ho ricontrollato il mio schema e la sua dottrina corretta ... infatti anche costruito una volta .. e ora il suo mi preoccupa con alcune relazioni FK ... Ho controllato per i tipi di dati pure. Tutti sono int (4) o int (2)

2 Qs qui: 1. Esiste un limite superiore per il no di relazioni (dipendenze / FKS) una tabella può avere? Ho fino a 7 FKS in un tabelle 2. Esiste un limite superiore per il no di tabelle che si riferiscono una tabella padre (PK)? Ho fino a 30 campi a 20 tavoli riferimento a una colonna ID unico nella tabella Opzioni 3. è la definizione per il comportamento CASCASE richiesto? Non ho usato!

E 'meglio vivere senza relazioni, in questo caso?

L'errore è:

 SQLSTATE[HY000]: General error: 1005 Can't create table 'sokidb.#sql-268_1d' (errno: 121). Failing Query: "ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)". Failing Query: ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)  

Inoltre ho sparato le query in MySQL direttamente, il risultato e 'lo stesso errore.

È stato utile?

Soluzione

La gente, in questi ultimi giorni mi sono reso conto che probabilmente non c'è problema noto con Doctrine.

Il mio errore è stato che avevo definito un'opzione per la mia chiave in una tabella 'unsigned: true' e non ripetuto lo stesso per la definizione FK :( Tutta colpa mia, ma la soluzione è doppio controllo i tuoi tipi di dati.

E il modo migliore per errori correlati a MySQL di debug è quello di verificare lo script SQL generato. Si può facilmente individuare differenze nelle definizioni di colonne.

Grazie John, per il vostro interesse.

Altri suggerimenti

probabilmente si sta utilizzando le tabelle InnoDB, che è di default per le versioni di MySQL moderni e di sperimentare un errore di vincolo ForeignKey. Leggi qui per un elenco completo di requerments.

  

corrispondente colonne nella estera   chiave e la chiave indicata deve avere   simile interna tipi di dati all'interno   InnoDB in modo che possano essere confrontati   senza una conversione di tipo. La dimensione   e segno di tipi interi deve essere il   stesso. La lunghezza dei tipi stringa necessità   non essere la stessa. per non binari   (caratteri) colonne stringa, la   set di caratteri e collazione devono essere   lo stesso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top