私はSQLを初めて使用しました。私はORDERSテーブルを作成しようとしていたときにmysql - テーブルの作成時に外部キー制約を追加できません
cannot add foreign key constraint
:私は外部キーを作成しようとすると
は、私はこのエラーを取得します。ここに私のコードは次のとおりです。
drop database if exists Company;
create database Company;
use Company;
create table WORKERS(w_id varchar(4), w_name varchar(20) not null, telephone varchar(12), e_mail varchar(35) unique);
create table CUSTOMERS(customer_id varchar(4), customer_name varchar(20) not null, telephone varchar(12), e_mail varchar(35) unique, credit bool);
create table WAREHOUSE(m_id int unsigned primary key, describes varchar(20) not null, fl char(1));
create table ITEM(p_id int(4) unsigned primary key, p_name varchar(15) not null, p_price float not null);
create table INVENTORY(in_id int auto_increment primary key, m_id int unsigned not null, p_id int(4) unsigned not null, amount int not null,
foreign key (m_id) references WAREHOUSE(m_id),
foreign key (p_id) references ITEM(p_id)
);
create table ORDERS(o_id int auto_increment primary key, customer_id varchar(4),
p_id int(4) unsigned, w_id varchar(4), amount int unsigned not null,
date_of_order date not null,
foreign key (p_id) references ITEM(p_id),
foreign key (w_id) references WORKERS(w_id),
foreign key (customer_id) references CUSTOMERS(customer_id)
);
私が読んで、あなたにそれを容易にするために別の行に(私は問題を抱えている)ORDERSを置きます。
私はここで答えを探していますが、私の質問に答えたものは何も見つかりませんでした。
誰でも問題が何であるか知っていますか?ありがとうございました!
外部キーを作成する場合、参照列が主キー(または使用しているSQLに応じて、少なくとも固有のキーである必要があります)。それはあなたの労働者テーブルの場合ではありません。 –