2016-05-23 27 views
-2
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)); 

第一个错误
enter image description here创建数据库抛出这个错误

第二个错误
enter image description here

+0

大家好。有人可以告诉我做错了什么。非常感谢。 – Wkyp

回答

0

主要错误是由于以下几行:

错误1

set foreign_key_checks=0 

上面一行错过语句终止符分号( ;)。

错误2

product id INT(10), 

以上行缺少下划线词productid之间
它应该是product_id

进行上述更改和您的SQL脚本应该工作。

0

以及你的语法是接近正确。在表的每一个创造你使用:

column_name INT(number), ... 

这是varchar数据类型正确的,但不能为INT。 对于INT,您必须使用方括号[]。所以,我所提到的线将成为:

column_name INT[(10)], ... 

如果您在syntax documentation of the CREATE TABLE看,你会发现它在一节“DATA_TYPE”。

我希望我能帮助你:)

0

主要误差以下行是由于:

错误1:

组FOREIGN_KEY_CHECKS = 0 上述行错过语句终止符号分号(;)。

错误2:

产品ID INT(10), 上述行字产品和id之间下划线丢失。 它应该是product_id。

进行上述更改和您的SQL脚本应该工作。

谢谢你们的帮助!这是正确的答案。