我是编写SQL代码的新手,我正在尝试运行一个简单的表创建,但是我无法找到编程中的错误,并且因为我是全新的,我正在努力创建这个。
这是我正在研究的学校项目,希望有人可以提供帮助。
我在SQLFiddle'中收到的错误是"无法添加外键约束"在以下代码中:
CREATE TABLE invoice(
invoice_id INT NOT NULL,
customer_id INT NOT NULL,
order_date DATE NULL,
spec_order_note VARCHAR(45) NULL,
PRIMARY KEY(invoice_id, customer_id),
FOREIGN KEY (customer_id)
REFERENCES customer.customer_id
ON DELETE CASCADE
ON UPDATE CASCADE
);
CREATE TABLE line_item (
invoice_id INT NOT NULL,
donut_id INT NOT NULL,
quantity INT NULL
CONSTRAINT donut_invoice
FOREIGN KEY invoice_id
REFERENCES invoice.invoice_id
ON DELETE RESTRICT
ON UPDATE RESTRICT
)
CREATE TABLE donut (
donut_id INT NOT NULL,
donut_name VARCHAR(15) NULL,
description VARCHAR(30) NULL,
unit_price INT NULL
PRIMARY KEY(donut_id),
)
CREATE TABLE customer (
customer_id INT NOT NULL,
last_name VARCHAR(15) NULL,
first_name VARCHAR(10) NULL,
street_add VARCHAR(20) NULL,
apt_num INT NULL,
city VARCHAR(20) NULL,
state VARCHAR(15) NULL,
zip_code INT NULL,
home_phone VARCHAR(10) NULL,
mobile_phone VARCHAR(10) NULL,
other_phone VARCHAR(10) NULL,
customer_notes VARCHAR(45) NULL
PRIMARY KEY(customer_id),
)
非常感谢任何帮助。
答案 0 :(得分:2)
您只能在外部约束中引用现有表和列。因此,如果要在customer
的外键中引用invoice
表,则需要在customer
之前创建invoice
或者使用{{1}另外添加外键约束}}
除此之外,您的代码中存在一些语法错误,例如缺少分号和错放(丢失和附加)逗号。
工作代码:
ALTER TABLE