在 MYSQL 中创建数据库会引发此错误

Creating database in MYSQL throws this mistakes

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));

第一个错误:

第二个错误:

嗯,你的语法几乎是正确的。在每个 Table 的创建中,您使用:

column_name INT(number), ...

这对 varchar 数据类型是正确的,但对 INT 不正确。 对于 INT,您也必须使用 方括号 [ ]。所以我提到的那一行会变成:

column_name INT[(10)], ...

如果您查看 syntax documentation of the CREATE TABLE,您会在 "data_type" 部分找到它。

希望能帮到你:)

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

错误 1

set foreign_key_checks=0

上一行遗漏了语句终止符号分号(;)。

错误 2

product id INT(10),

上一行在 productid.
之间缺少 下划线 应该是 product_id.

进行上述更改,您的 sql 脚本应该可以正常工作。

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

错误 1:

设置foreign_key_checks=0 上面一行遗漏了语句终止符号分号 ( ; ).

错误 2:

产品编号 INT(10), 上面一行单词 product 和 id 之间缺少下划线。 应该是 product_id.

进行上述更改,您的 sql 脚本应该可以正常工作。

谢谢大家的帮助!这是正确的答案。