Pregunta

He comprobado mi doble esquema, y ??su doctrina correcta ... de hecho también construyó una vez .. y ahora su molestándome con algunas relaciones FK ... He comprobado para los tipos de datos también. Todos son int (4) o int (2)

2 Qs aquí: 1. ¿Existe un límite superior a la de ninguna de las relaciones (dependencias / FKS) Una tabla puede tener? Tengo hasta 7 FKs en unas tablas 2. ¿Existe un límite superior para el no de tablas que se refieren una tabla primaria (PK)? Tengo hasta 30 campos en 20 mesas en referencia a una columna de identificación única en la tabla Opciones 3. Se requiere la definición de un comportamiento Cascase? Yo no lo he usado!

¿Es mejor vivir sin relaciones en este caso?

El error es:

 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)  

También disparó las consultas en MySQL directamente, el resultado es el mismo error.

¿Fue útil?

Solución

Las personas, en los últimos días me he dado cuenta de que probablemente no hay problema conocido de Doctrina.

Mi error fue que había definido una opción para la llave en una mesa 'sin signo: la verdadera' y no se repite lo mismo para la definición FK :( Todo es mi culpa, pero la solución es doble chequeo de tipos de datos.

Y la mejor manera de errores relacionados con MySQL depuración es comprobar la secuencia de comandos SQL generado. Usted puede detectar fácilmente las diferencias en las definiciones de columnas.

Gracias John, por su interés.

Otros consejos

probablemente se está utilizando tablas InnoDB, que es por defecto para las versiones modernas de MySQL y experimentar un error de restricción ForeignKey. Lea aquí para obtener una lista completa de requerments.

  

Las columnas correspondientes en el extranjero   y la tecla de referencia debe tener   tipos de datos interna similar dentro de   InnoDB para que puedan ser comparadas   sin una conversión de tipos. El tamaño   y el signo de los tipos enteros debe ser el   mismo. La longitud de los tipos de cadena necesidad   no ser la misma. para no binario   (carácter) columnas de cadenas, la   conjunto de caracteres y la colación deben estar   la misma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top