set foreign_key_checks=0
CREATE TABLE product(
id INT(10) NOT NULL AUTO_INCREMENT,
name varchar(100),
category_id INT,
PRIMARY KEY (id),
FOREIGN KEY (category_id) REFERENCES category (id) on update cascade on delete cascade);
CREATE TABLE customer(
id INT(10) NOT NULL AUTO_INCREMENT,
name varchar(50),
email varchar(100),
password varchar(25),
PRIMARY KEY (id));
CREATE TABLE purchase(
id INT NOT NULL AUTO_INCREMENT,
user_account_id INT(10),
product id INT(10),
PRIMARY KEY (id),
FOREIGN KEY (user_account_id) REFERENCES customer(id));
CREATE TABLE category(
id INT(10) NOT NULL AUTO_INCREMENT,
kategorija VARCHAR(50),
PRIMARY KEY (id));
CREATE TABLE purchase_item(
purchase_id INT(10),
product_id INT(10),
number_of_items INT(10),
total_price DECIMAL,
FOREIGN KEY (puchase_id) REFERENCES purchase(id),
FOREIGN KEY (product_id) REFERENCES product(id));
答案 0 :(得分:0)
你的语法几乎是正确的。在每个表的创建中,您使用:
column_name INT(number), ...
这对于varchar
数据类型是正确的,但对INT
没有。
对于INT
,您还必须使用方括号[] 。所以我提到的那条线将成为:
column_name INT[(10)], ...
如果您查看syntax documentation of the CREATE TABLE,可以在" data_type"部分找到它。
我希望我可以帮助你:)。
答案 1 :(得分:0)
主要错误归因于以下几行:
错误1 :
set foreign_key_checks=0
以上行错过语句终止符号分号(;
)。
错误2 :
product id INT(10),
单词product
和id
之间缺少下划线。
它应该是product_id
。
进行上述更改,您的sql脚本应该正常工作。
答案 2 :(得分:0)
主要错误归因于以下几行:
错误1:
设置foreign_key_checks = 0 上面的行错过语句终止符号分号(;)。
错误2:
产品ID INT(10), 单词product和id之间缺少下划线。 它应该是product_id。
进行上述更改,您的sql脚本应该正常工作。
谢谢你们的帮助!这是正确答案。