Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

DELETE CASCADE vs ALTER TABLE

Estas en el tema de DELETE CASCADE vs ALTER TABLE en el foro de Bases de Datos General en Foros del Web. Hola a todos, tengo la siguiente BD (simplificada): CREATE TABLE `is_cliente` ( `IDCLIENTE` int(11) unsigned NOT NULL auto_increment, `IDOFICINA` tinyint(11) unsigned NOT NULL default '0', ...
  #1 (permalink)  
Antiguo 06/10/2004, 02:53
 
Fecha de Ingreso: mayo-2004
Mensajes: 101
Antigüedad: 20 años
Puntos: 0
DELETE CASCADE vs ALTER TABLE

Hola a todos,
tengo la siguiente BD (simplificada):
CREATE TABLE `is_cliente` (
`IDCLIENTE` int(11) unsigned NOT NULL auto_increment,
`IDOFICINA` tinyint(11) unsigned NOT NULL default '0',
`CNOMBRE` varchar(50) default NULL,
`CAPELLIDO1` varchar(50) default NULL,
`CAPELLIDO2` varchar(50) default NULL,
PRIMARY KEY (`IDCLIENTE`),
KEY `IDX_is_cliente_2` (`IDUSUARIO`),
KEY `IDOFICINA` (`IDOFICINA`)
) TYPE=InnoDB;

CREATE TABLE `is_oficina` (
`IDOFICINA` int(2) unsigned zerofill NOT NULL auto_increment,
`OFICINA` varchar(20) NOT NULL default '',
PRIMARY KEY (`IDOFICINA`)
) TYPE=InnoDB ;

El caso es que quiero crear una clave ajena en is_cliente, para que cuando se borre una referencia de is_oficina se borren todos los clientes asociados.

Luego lo que hago es ir ami gestor de BD (Mysql) y escribir lo siguiente en is_cliente:

ALTER TABLE is_cliente
ADD FOREIGN KEY (IDOFICINA)
REFERENCES tis_oficina (IDOFICINA)
ON DELETE CASCADE

que es lo que me falla?!
gracias.
  #2 (permalink)  
Antiguo 06/10/2004, 05:16
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
nesetru123
Mysl Maneja diferentes tipos de tablas, cada tabla para un fin espeíifico.
El tipo de tabla de tabla que acepta FOREIGN KEY, son las tablas de tipo InnoDB,
aqui tienes mas info sobre las claves foraneas
http://www.mysql-hispano.org/page.php?id=27&pag=4
Saludos!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:07.