Autor
|
Tema: varios foreign key me da problemas (Leído 5,026 veces)
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
me da problemas error 150 y no marca lineas ni nada pero probando el error esta en que tengo 3 foreign keys si quito los 2 ultimo me van bien y no es lo que quiero. ayuda for favor -- -- TABLA clientes --
CREATE TABLE TEC_clientes( cod_usu TINYINT, nombre VARCHAR(25) NOT NULL, apellidos VARCHAR(35) NOT NULL, nif VARCHAR(10) NOT NULL, nombre_empresa VARCHAR(20), forma_juridica VARCHAR(20), cif VARCHAR(15), pais VARCHAR(25) NOT NULL, provincia VARCHAR(20) NOT NULL, localidad VARCHAR(20) NOT NULL, codigo_postal NUMERIC(4) NOT NULL, direccion VARCHAR(35) NOT NULL, telefono VARCHAR(10) NOT NULL, email VARCHAR(35) NOT NULL, usuario VARCHAR(20) NOT NULL, contrasena VARCHAR(60) NOT NULL, CONSTRAINT PKUSU PRIMARY KEY (cod_usu), CONSTRAINT usuunica2 UNIQUE(usuario) ) ENGINE=InnoDB;
--- --- TABLA servidores ---
CREATE TABLE TEC_servidores( descripcion TINYINT, email TINYINT NOT NULL, telefono TINYINT NOT NULL, cod_usu TINYINT NOT NULL, CONSTRAINT PKDESCRIPCION PRIMARY KEY (descripcion), CONSTRAINT FKUSUA FOREIGN KEY (cod_usu) REFERENCES TEC_clientes(cod_usu) ON DELETE CASCADE, CONSTRAINT FKTELEFONO FOREIGN KEY (telefono) REFERENCES TEC_clientes(telefono) ON DELETE CASCADE, CONSTRAINT FKEMAIL FOREIGN KEY (email) REFERENCES TEC_clientes(email) ON DELETE CASCADE ) ENGINE=InnoDB;
|
|
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
Shell Root
|
Forening Key Definición: En el contexto de bases de datos relacionales, una clave foránea o clave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). LAS COLUMNAS EN LA TABLA REFERENDO DEBEN SER LA CLAVE PRIMARIA...
Ahora dime en que fallas?
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
yo lo que quiero es que el email de una tabla se guarde en la segunda tabla como tambien el telefono. si quito las dos ultimas foreign como te mencionado no salta error pero yo quiero que los datos email,telefono esten en la segunda tabla como te comento que hago¿¿?
|
|
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
Pablo Videla
|
yo lo que quiero es que el email de una tabla se guarde en la segunda tabla como tambien el telefono. si quito las dos ultimas foreign como te mencionado no salta error pero yo quiero que los datos email,telefono esten en la segunda tabla como te comento que hago¿¿?
Tienes que insertar explicitamente los datos en todas las tablas que la requieran.
|
|
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
entonces tendria que hacer inserts para esa tabla como dices pero si se cambian datos de una tabla tendre que hacer un update de las 2 tablas no¿? es correcto esto¿¿? y lo estoy haciendo bien seguro¿¿¿?
|
|
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
estoy casi en las mismas nose que hacer
|
|
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
Shell Root
|
Plantea bien el problema, y te ayudaremos, no se para que duplicar registros en diferentes tablas, si puedes hacer una query para llegar al mismo dato.
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
HdM
Desconectado
Mensajes: 1.674
|
Hola. estoy casi en las mismas nose que hacer
Con la doc enlazada lo que trataba de indicarte es que si los campos a los que apuntan las FK, los defines como UNIQUE, no deberías tener problemas (la integridad referencial evitaría datos incoherentes). Pero como de nuevo ya te han indicado, para qué definir tantas FK, si en principio con una sola tienes suficiente. Saludos.
|
|
|
En línea
|
- Nice to see you again -
|
|
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
--- --- TABLA servidores --- CREATE TABLE TEC_servidores( descripcion TINYINT, email TINYINT NOT NULL, telefono TINYINT NOT NULL, cod_usu TINYINT NOT NULL, CONSTRAINT PKDESCRIPCION PRIMARY KEY (descripcion), CONSTRAINT FK_TECSERVIDORES_TECCLIENTES FOREIGN KEY (cod_usu,telefono,email) REFERENCES TEC_clientes(cod_usu,telefono,email) ON DELETE CASCADE ) ENGINE=InnoDB;
Sin embargo esa practica no tiene mucho sentido puesto que ni telefono, ni email forman parte de la llave de la tabla cliente. Deberías redefinir que es lo que deseas para que así puedas sacar un mejor performance a tus futuras querys.
|
|
|
En línea
|
|
|
|
|
|