Question

I've double-checked my schema, and its correct... infact doctrine also built it once.. and now its troubling me with some FK relations... I have checked for the data-types as well. All are int(4) or int(2)

2 Qs here: 1. is there an upper limit to the no of relations (dependencies/FKs) a table can have? I have upto 7 FKs in a tables 2. is there an upper limit to the no of tables referring a parent table (PK)? I have upto 30 fields in 20 tables referring to a single ID column in Options table 3. Is the definition for CASCASE behaviour required? I haven't used it!

Is it better to live without relationships in this case?

The error is:

 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)  

I also fired the queries in MySQL directly, it results in the same error.

Was it helpful?

Solution

People, over the last few days I've realized that there is probably no known issue with Doctrine.

My mistake was that I had defined an option for my key in one table 'unsigned:true' and not repeated the same for the FK definition :( All my fault, but the solution is double check your datatypes.

And the best way to debug MySQL related errors is to check the SQL script generated. You can easily spot differences in definitions of columns.

Thanks John, for your interest.

OTHER TIPS

You are probably using INNODB tables, which is default for modern mysql versions and experiencing a foreignkey constraint error. Read here for a full list of requerments.

Corresponding columns in the foreign key and the referenced key must have similar internal data types inside InnoDB so that they can be compared without a type conversion. The size and sign of integer types must be the same. The length of string types need not be the same. For nonbinary (character) string columns, the character set and collation must be the same.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top