【问题标题】:MariaDB unknown syntax error. Making a simple table [duplicate]MariaDB 未知语法错误。制作一个简单的表格[重复]
【发布时间】: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)
);

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

【问题讨论】:

    标签: sql mariadb mariasql


    【解决方案1】:

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

    create table `order` (...)
    

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

    【讨论】:

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