-3
votes

J'essaie de créer des clés étrangères, mais j'ai eu une erreur 1822 .. S'il vous plaît voir mon code ci-dessous

CREATE TABLE employee(
  empid int auto_increment primary key,
  empfirstname varchar(200) not null,
  emplastname varchar(200) not null,
  email varchar(200) not null,
  officenumber int not null
);
CREATE TABLE customer(
  custid int auto_increment primary key,
  firstname varchar(200) not null,
  lastname varchar(200) not null,
  address varchar(200) not null,
  contact varchar(200)
);
CREATE TABLE product(
  productid int auto_increment primary key,
  productdesc varchar(500) not null,
  weight int not null,
  unit_cost int not null
);
CREATE TABLE productorder(
  productid int,
  orderid int,
  primary key(productid,orderid),
  constraint fk3 foreign key (productid) references product(productid),
  constraint fk4 foreign key (orderid) references productorder(orderid)
);
CREATE TABLE salesorder(
  salesorderid int auto_increment primary key,
  empid int not null,
  custid int not null,
  orderdate date not null,
  shippingmethod varchar (200) not null,
  constraint a_fk1 foreign key (empid) references employee(empid),
  constraint a_fk2 foreign key (custid) references customer(custid)
);

2 commentaires

Avec quel RDBR travaillez-vous?


Peut-être que je déduit trop ici, mais cela ne serait-il pas plus logique pour salersorder d'avoir une colonne de commande ? Sinon, vous n'avez aucun moyen réel de relier une commande de vente avec des commandes de produits. Et dans ce cas, votre clé étrangère fk4 référence vendeur (orderid) , et vous devez créer la contrainte FK après avoir créé le vendeur table.


3 Réponses :


0
votes

Son normal, xxx

se réfère à la table elle-même: x


0 commentaires

0
votes

Qu'est-ce que cela signifie faire ?:

CREATE TABLE productorder(
  orderid int auto_increment primary key,
  productid int,
  constraint fk3 foreign key (productid) references product(productid)
);


0 commentaires

0
votes

Pour atteindre la contrainte d'auto-référencement sur le tableau producteur , vous devez ajouter une autre colonne avec le même type et faire une référencement typique. Par exemple: xxx


0 commentaires