MySQL - Clave ajena

 
Vista:
sin imagen de perfil

Clave ajena

Publicado por Mario (1 intervención) el 10/11/2021 17:39:20
Buenas buenas.
es una pregunta simple pero que no doy con el click, estoy intentado hacer una clave ajena pero no hay forma de conseguir que me la pille, os dejo la parte del codigo por aqui y el error que me saca phpmyadmin.
Muchas gracias de antemano.
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
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Clave ajena

Publicado por Francisco (73 intervenciones) el 15/11/2021 18:09:40
Hola

Las claves ajenas se hacen solo a las claves primarias, no puedes hacer de una columna si no esta como clave primaria en la tabla maestra, sino tendrias que crear una clave compuesta con el id y nombreproducto en tu tabla proveedor

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
-- Table proveedor
 
CREATE TABLE proveedor
(
  id Int UNSIGNED NOT NULL AUTO_INCREMENT,
  nombreproducto Varchar(25) NOT NULL,
  PRIMARY KEY (id,nombreproducto)
)
;
 
-- Table material
 
CREATE TABLE material
(
  id Int UNSIGNED NOT NULL AUTO_INCREMENT,
  cantidad Int NOT NULL DEFAULT 0,
  idproveedor Int UNSIGNED,
  nombreproducto Varchar(25),
  PRIMARY KEY (id)
)
;
 
-- Create foreign keys (relationships) section -------------------------------------------------
 
ALTER TABLE material ADD CONSTRAINT R001
   FOREIGN KEY (idproveedor, nombreproducto) REFERENCES proveedor (id, nombreproducto)
   ON DELETE CASCADE ON UPDATE CASCADE
;

Saludos
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