Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/09/2004, 11:17
satchb
 
Fecha de Ingreso: septiembre-2004
Ubicación: Puebla, México
Mensajes: 81
Antigüedad: 20 años, 2 meses
Puntos: 0
Para usar foreign keys en mysql, se requiere que:
1. Ambas tablas sean del tipo innodb
2. Usar la sintaxis FOREIGN KEY(campo) REFERENCES table_name (campo)
3. El campo que se declara como foreign key debe ser declarado como indice

En tu caso especifico para solucionar (posiblemente) las cosas necesitas que las tablas queden asi:

create table registro(
matricula varchar(10) not null,
nombre varchar(40) not null,
ap varchar(30) not null,
am varchar(30) not null,
edad int(2) not null,
calleynum varchar(40) not null,
colonia varchar(40) not null,
mundel varchar(50) not null,
cp int(6) not null,
email varchar(50) not null,
telefono varchar(20) not null,
teltrab varchar(20) not null,
telcel varchar(20) not null,
opinion varchar(20) not null,
primary key(matricula) ) TYPE = INNODB;

create table empresa(
claveempre mediumint auto_increment,
matricula varchar(10) not null,
nomempresa varchar(40) not null,
primary key(claveempre),
INDEX (matricula),
foreign key(matricula) references registro(matricula)) TYPE = INNODB;

Debes usar mysql 4 o superior

Tambien checa que cuando crees un registro en empresa, matricula antes exista en registro.

Si esto no sirve seria bueno que publicaras el error que te manda mysql

Espero que esto sirva
__________________
Revista DdS
Revista on-line sobre desarrollo de software