PHP - Relaciones!!!

 
Vista:

Relaciones!!!

Publicado por José Iván G. (16 intervenciones) el 16/12/2003 22:25:10
Hola,
Tengo un problemas con las relaciones. Creo por ejemplo dos tablas y en una de ellas coloco la clave foranea que me relaciona con la otra tabla y pido que cuando borren en registro de la clave primaria me borre en cascada los hijos relacionados y me dice que el query se efectúa correctamente y me meto a la base de datos y resulta que los registros siguen allí mismo.
También me hago la relación y me meto a la base de datos con el phpmyadmin y borro el registro padre y no me borra los hijos por nada.. será que estoy haciendo algo mal no estoy controlando algo: el codigo que utilizo para la creacion de la clave es:
alter table empleados add constraint fk_sucucursal
Foreign key(sucursal) references sucursales(id) on delete cascade on update cascade;

Mil gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Relaciones!!!

Publicado por José Iván G. (16 intervenciones) el 17/12/2003 16:48:19
Claro viejo!!!

Eso es, veo que me toca utilizar el tipo de tabla Inno db, pero no entiendo como es que los otros tipos de tablas no tienen esa herramienta tan poderosa como lo son las Foreign keys, pero bueno...

Mil gracias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas!!

Publicado por José Iván G. (16 intervenciones) el 17/12/2003 17:49:19
xxx, mira lo que me pasó he creado dos tablas para probar el poder del tipo innodb, y cuando intento crear la foreign key me saca el siguiente error, sabes que sigo haciendo mal?? le he buscado como un berraco..
SQL-query :

ALTER TABLE ciudad ADD CONSTRAINT fk_zona FOREIGN KEY ( ciu_zona ) REFERENCES zonas( zon_id ) ON DELETE CASCADE ON UPDATE CASCADE

MySQL said:

Can't create table './citalsa_comer/#sql-303e_21aa64.frm' (errno: 150)

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas!!

Publicado por José Iván G. (16 intervenciones) el 17/12/2003 18:15:24
Listo, el problema es que no sabía que para poder crear el foreign key tenía que crear un idex por ese campo, mil gracias, he aquí el ejemplo completo:

Drop table IF EXISTS zonas;

create table zonas(
zon_id INT NOT NULL AUTO_INCREMENT,
zon_nombre VARCHAR(100) NOT NULL DEFAULT '-',
zon_url VARCHAR(100),
PRIMARY KEY (zon_id),
index sucur(zon_nombre))
type = innodb ;

drop table IF EXISTS ciudad ;

create table ciudad(
ciu_id INT NOT NULL AUTO_INCREMENT,
ciu_nombre VARCHAR(100) NOT NULL DEFAULT '-',
ciu_zona INT(11) NOT NULL DEFAULT 0,
ciu_pais INT(11) NOT NULL DEFAULT 0,
PRIMARY KEY (ciu_id),
index ciudnom(ciu_nombre),
index ciudzon(ciu_zona),
FOREIGN KEY (ciu_zona)
REFERENCES zonas(zon_id)
ON UPDATE CASCADE ON DELETE CASCADE)
type = innodb;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar