在我的数据库中,我需要创建一个有两个外键的表,虽然我试过,但我无法弄清楚错误的来源。任何正文帮我解决了这个问题。 我给创建表的mysql命令
create table book_vegetable(
id int NOT NULL AUTO_INCREMENT,
producer_offer_id int NOT NULL,
consumer_id int NOT NULL,
booked_qty varchar,
PRIMARY KEY(id),
FOREIGN KEY(producer_offer_id)
REFERENCES producer_offer(id),
FOREIGN KEY(consumer_id) REFERENCES user(id)
);
我得到的错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近' PRIMARY KEY(id),FOREIGN KEY(producer_offer_id)REFERENCES producer_offer(ID),FOR'在第1行
答案 0 :(得分:2)
您的第一个问题是由于expected_qty varchar列上缺少长度规范引起的。
错误150的常见嫌疑人:
答案 1 :(得分:1)
这适用于MySQL,刚刚测试过(请注意,生产者提供和用户只是一个模拟表)。
create table producer_offer (id int(10) not null auto_increment, primary key(id));
create table user (id int(10) not null auto_increment, primary key(id));
create table book_vegetable (
id int(10) NOT NULL AUTO_INCREMENT,
producer_offer_id int(10) NOT NULL,
consumer_id int(10) NOT NULL,
booked_qty varchar(255),
PRIMARY KEY(id),
FOREIGN KEY(producer_offer_id) REFERENCES producer_offer(id),
FOREIGN KEY(consumer_id) REFERENCES user(id)
);