MySQL - Ayuda (help) error en sintaxis mysql relacion reflexiva.

 
Vista:
Imágen de perfil de Kinubi

Ayuda (help) error en sintaxis mysql relacion reflexiva.

Publicado por Kinubi (3 intervenciones) el 24/01/2022 19:41:09
Saludos a todos soy nuevo en el foro, estoy estudiando bases de datos, pero me eh quedado atorado en
una tabla con relación reflexiva, la cual me marca el siguiente error:

ERROR 1005 (HY000): Can't create table `jugueteria`.`vendedor` (errno: 150 "Foreign key constraint is incorrectly formed")

Español:
ERROR 1005 (HY000): No se puede crear la tabla `jugueteria`.`vendedor` (errno: 150 "La restricción de clave externa está formada incorrectamente")

trabajo en Notepad++ la sintaxis y en mysql shell la tabla.

Pero no logro entender a que se refiere. Si alguien me puede ayudar a resolver este error por favorm le agradecería
21
22

De antemano muchas gracias, y felicidades por tan buen foro :D
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

Ayuda (help) error en sintaxis mysql relacion reflexiva.

Publicado por Martha (80 intervenciones) el 25/01/2022 22:10:58
Yo he realizado esto, copiando tu código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CREATE TABLE fabrica(
id_fabrica int,
nom_fabrica varchar(50),
calle varchar(30),
colonia varchar(30),
municipio varchar(30),
tel_cel char(9),
PRIMARY KEY(id_fabrica)
)ENGINE=innodb;
 
CREATE TABLE cliente(
clave_cliente int,
nom_cliente varchar(50),
apat_cliente varchar(50),
PRIMARY KEY(clave_cliente)
)ENGINE=innodb;
 
CREATE TABLE vendedor(
matricula int,
nom_v varchar(30),
apat_v varchar(30),
amat_v varchar(30),
edad int,
sexo varchar(1),
vendedor_matricula_vendedor_trabaja int,
PRIMARY KEY (matricula),
CONSTRAINT fkvendedor_trabaja
FOREIGN key (vendedor_matricula_vendedor_trabaja)
REFERENCES vendedor(matricula)
)ENGINE=innodb;


Creo que el problema está en que la Primary Key de referencia, en el REFERENCES, debe ser vendedor(matricula) y no vendedor(vendedor_matricula) que no existe.

Por cierto, los números de teléfono y en general todos los códigos numéricos que no sean cifras (para hacer cálculos) hazlos CHAR o VARCHAR ya que ocupan menos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kinubi

Ayuda (help) error en sintaxis mysql relacion reflexiva.

Publicado por Kinubi (3 intervenciones) el 26/01/2022 01:31:48
Estuvo genial tu respuesta, muchísima gracias logre pasar de ahí jajajaja .. mil gracias Martha.
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
Imágen de perfil de Kinubi

Ayuda (help) error en sintaxis mysql relacion reflexiva.

Publicado por Kinubi (3 intervenciones) el 26/01/2022 01:57:26
Una nueva consulta, como puedo crear una tabla con dos llaves foraneas?

Es decir crear la tabla juguete
Con la primer llave foranea de fabrica id_fabrica
Y la segunda de vendedor matricula.

Tengo esto pero no me da.. me marca error xD

De antemano muchas gracias.
1643158682885916225007292019968
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