MYSQL 错误 1064:似乎无法准确找到错误
MYSQL Error 1064: Can't seem to find the error exactly
你好,我是 SQL 的新手,一般来说是编码,我在我的代码中看到一个错误,我似乎无法弄清楚。
DROP TABLE IF EXISTS record, artist;
CREATE TABLE artist (
id INT AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
PRIMARY KEY (id)
);
CREATE TABLE record (
id INT AUTO_INCREMENT,
title VARCHAR(50),
artist_id INT,
genre TINYTEXT,
year YEAR(4),
price DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (artist_id)
REFERENCES artist (id)
);
CREATE TABLE order (
id INT AUTO_INCREMENT,
record_id INT,
quantity INT unsigned,
total DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (record_id)
REFERENCES record (id)
);
出现的错误是:
错误 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 'order (
id INT AUTO_INCREMENT,
record_id 智力,
数量 INT 无符号,
第 1 行的总 D'
我知道它告诉我错误的确切位置,我知道这是一个语法错误,但出于某种原因,我似乎无法理解错误的确切位置或内容。我试过添加 'order' 和 DROP TABLE IF EXISTS
但这只会带来更多错误。我知道这可能是很明显的事情,所以我很抱歉问这个问题,但我迷路了。
order
是SQL中的保留字。您可以通过用正引号将其括起来来保护它:
CREATE TABLE `order` (
id INT AUTO_INCREMENT,
record_id INT,
quantity INT unsigned,
total DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (record_id)
REFERENCES record (id)
);
或者更好的是,找到一个不是保留字的名称,例如 orders
:
CREATE TABLE orders (
id INT AUTO_INCREMENT,
record_id INT,
quantity INT unsigned,
total DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (record_id)
REFERENCES record (id)
);
你好,我是 SQL 的新手,一般来说是编码,我在我的代码中看到一个错误,我似乎无法弄清楚。
DROP TABLE IF EXISTS record, artist;
CREATE TABLE artist (
id INT AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
PRIMARY KEY (id)
);
CREATE TABLE record (
id INT AUTO_INCREMENT,
title VARCHAR(50),
artist_id INT,
genre TINYTEXT,
year YEAR(4),
price DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (artist_id)
REFERENCES artist (id)
);
CREATE TABLE order (
id INT AUTO_INCREMENT,
record_id INT,
quantity INT unsigned,
total DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (record_id)
REFERENCES record (id)
);
出现的错误是:
错误 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 'order (
id INT AUTO_INCREMENT,
record_id 智力,
数量 INT 无符号,
第 1 行的总 D'
我知道它告诉我错误的确切位置,我知道这是一个语法错误,但出于某种原因,我似乎无法理解错误的确切位置或内容。我试过添加 'order' 和 DROP TABLE IF EXISTS
但这只会带来更多错误。我知道这可能是很明显的事情,所以我很抱歉问这个问题,但我迷路了。
order
是SQL中的保留字。您可以通过用正引号将其括起来来保护它:
CREATE TABLE `order` (
id INT AUTO_INCREMENT,
record_id INT,
quantity INT unsigned,
total DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (record_id)
REFERENCES record (id)
);
或者更好的是,找到一个不是保留字的名称,例如 orders
:
CREATE TABLE orders (
id INT AUTO_INCREMENT,
record_id INT,
quantity INT unsigned,
total DECIMAL(10, 2) unsigned,
PRIMARY KEY (id),
FOREIGN KEY (record_id)
REFERENCES record (id)
);