MariaDB 未知语法错误。制作一个简单的表格[重复]

Posted

技术标签:

【中文标题】MariaDB 未知语法错误。制作一个简单的表格[重复]【英文标题】:MariaDB unknown syntax error. Making a simple table [duplicate] 【发布时间】:2020-08-19 07:14:57 【问题描述】:

我找不到我的单表制作 sql 代码有什么问题。它所引用的“用户”确实存在。我收到的错误 是:

ERROR 1064 (42000) at line 1 in file: 'project.sql': 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'order ( id integer(11) 主键 auto_increment, ordertyp' 在第 1 行

这是我的表格代码:

create table order (
    id          integer(11)     Primary Key auto_increment,
    ordertype   varchar(255)    not null,
    timePlaced  timestamp       not null,
    buyUser     varchar(25),
    sellUser    varchar(25),
    foreign key(buyUser) references user(username),
    foreign key(sellUser) references user(username)
);

任何有帮助的,只是寻找一个简单的语法修复,谢谢!

【问题讨论】:

【参考方案1】:

如果表名与关键字冲突或包含特殊字符,则必须引用表名:

create table `order` (...)

见:https://dev.mysql.com/doc/refman/8.0/en/keywords.html

【讨论】:

好吧,我真的不知道为什么我以前不必这样做。在同一个文件中,我创建了表而不引用表名。超级奇怪的东西,但谢谢! 因为order 是保留关键字。 ORDER BY ... @MatthewJacobsen - 如果你引用表名,你将不得不在它被使用的任何地方引用它,这真的很快就变老了。我建议你把表的名字改成orders 太棒了,这回答了我的问题并消除了一些困惑。我不知道订单是关键字 @MatthewJacobsen 它用于订购(是)SELECT 查询的结果

以上是关于MariaDB 未知语法错误。制作一个简单的表格[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MariaDB/MySQL 中的 CREATE PROCEDURE 出现神秘错误

为啥 mariadb 为使用工作台创建的 sql 文件提供语法错误

MariaDB 涉及服务器版本的语法错误

MariaDB 语法错误

多语句中的 Mariadb 语法错误

phpmyadmin MariaDb 更改表语法错误