在 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),
上一行在 product
和 id
.
之间缺少 下划线
应该是 product_id
.
进行上述更改,您的 sql 脚本应该可以正常工作。
主要错误是由于以下几行:
错误 1:
设置foreign_key_checks=0
上面一行遗漏了语句终止符号分号 ( ; ).
错误 2:
产品编号 INT(10),
上面一行单词 product 和 id 之间缺少下划线。
应该是 product_id.
进行上述更改,您的 sql 脚本应该可以正常工作。
谢谢大家的帮助!这是正确的答案。
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),
上一行在 product
和 id
.
之间缺少 下划线
应该是 product_id
.
进行上述更改,您的 sql 脚本应该可以正常工作。
主要错误是由于以下几行:
错误 1:
设置foreign_key_checks=0 上面一行遗漏了语句终止符号分号 ( ; ).
错误 2:
产品编号 INT(10), 上面一行单词 product 和 id 之间缺少下划线。 应该是 product_id.
进行上述更改,您的 sql 脚本应该可以正常工作。
谢谢大家的帮助!这是正确的答案。