MySQL创建order表报1064语法错误,请求技术解决方案
问题解决方案
错误原因
order是MySQL的保留关键字,直接将其作为表名会触发语法错误——MySQL会把它识别为SQL语句的组成部分(比如ORDER BY子句中的关键字),而非自定义表名。
解决方案
有两种可行的解决方式:
方式一:用反引号包裹保留关键字作为表名
在order前后添加反引号(`),明确告知MySQL这是一个表名而非关键字,修改后的完整代码如下:
CREATE DATABASE IF NOT EXISTS thogakade; USE thogakade; CREATE TABLE customer( customerId VARCHAR(10), name VARCHAR(50), address TEXT, salary DECIMAL(10,2), CONSTRAINT PRIMARY KEY(customerId) ); CREATE TABLE `order`( orderId VARCHAR(30), orderDate DATE NOT NULL, custId VARCHAR(45), CONSTRAINT PRIMARY KEY(orderId), CONSTRAINT FOREIGN KEY(custId) REFERENCES customer(customerId) );
方式二:更换为非保留关键字的表名
避免使用保留关键字,将表名改为类似orders的合规名称,修改后的代码如下:
CREATE DATABASE IF NOT EXISTS thogakade; USE thogakade; CREATE TABLE customer( customerId VARCHAR(10), name VARCHAR(50), address TEXT, salary DECIMAL(10,2), CONSTRAINT PRIMARY KEY(customerId) ); CREATE TABLE orders( orderId VARCHAR(30), orderDate DATE NOT NULL, custId VARCHAR(45), CONSTRAINT PRIMARY KEY(orderId), CONSTRAINT FOREIGN KEY(custId) REFERENCES customer(customerId) );
内容的提问来源于stack exchange,提问作者Dilshan Dekumpitiya
相关产品推荐
相关产品推荐

