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

my_sql: Y la foreign keys?

Estas en el tema de my_sql: Y la foreign keys? en el foro de Bases de Datos General en Foros del Web. Alguien puede decirme como declarar una clave foranea en la creación de una tabla con my_sql?...
  #1 (permalink)  
Antiguo 21/02/2004, 12:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 20 años, 5 meses
Puntos: 0
my_sql: Y la foreign keys?

Alguien puede decirme como declarar una clave foranea en la creación de una tabla con my_sql?
  #2 (permalink)  
Antiguo 21/02/2004, 14:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
my_sql?

Mysql no dispone de soporte para claves foráneas .. sobre todo para las tablas standars: MyIsam .. si que las soporta en tablas Inondb .. o bien te esperas a la versión Mysql 4.1.x en adelante que ya está previsto el soporte de claves foráneas y varias cosas más como "store procedures" y no recuerdo si llegarán a "triggers" también ..

En cualquier caso .. esto es pregunta del foro de "Base de datos" .. así que para allá vá para que te orienten al respecto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 02/03/2004, 14:57
 
Fecha de Ingreso: marzo-2004
Mensajes: 2
Antigüedad: 20 años, 2 meses
Puntos: 0
Se puede utilizar claves ajenas en MySQL utilizando un tipo de tabla especial, las tablas InnoDB. Acá va un ejemplo:

Create Table Provincias (
id int(2) not null auto_increment,
nombre char (20) not null,
primary key (id),
unique i1 (nombre) #este indice no es necesario, solo sirve para no ingresar 2 provincias iguales
)Type=InnoDB; #a lo ultimo tenes que indicar el tipo de tabla

Create Table Clientes (
dni int(8) not null ,
nombre char (20) not null,
apellido char(20),
provincia int(2),
primary key (dni),
index i1 (provincia), #acá SI es necesario el indice, si no pones este indice te va a dar un error al declarar esta tabla
foreign key (provincia) references provincias(id) on delete set null on update set null
)Type=InnoDB;

en la opción on delete y on update podes ponerle las opciones set null, cascade o restrict. Creo que por defecto usa restrict. Espero que te haya servido.


Saludos,
Santiago.

Paraná-Entre Ríos-Argentina.
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 10:55.