当前位置: 首页 > 知识库问答 >
问题:

如何修复此mysql创建表语法错误[重复]

王航
2023-03-14

我发现了一个mysql创建表语法错误,希望有人能在我失去理智之前发现它。

create table buyer_representations (
Key int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (Key)
);

错误1064(42000):您的SQL语法中有错误;查看与您的MySQL server版本相对应的手册,以了解在第2行“int not null auto_increment,Client_ID int not null,Start_Time varchar(5),star”附近使用的正确语法

mysql Ver 14.14 Distrib 5.7.29,适用于Linux(x86_64)使用EditLine包装器

我试着在第2行末尾添加“primary key”以及默认值,并将“not null”切换为“auto_increment”。但一切都不起作用。

编辑:我还尝试将Key更改为KeyId,并将Key放在引号中。但错误仍然不变。

编辑2:这里是我一直在尝试但没有成功的命令。错误总是相同的

    create table buyer_representations (
`Key` int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (`Key`)
);

错误1064(42000):您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以了解在第2行“ int not null auto_increment,client_id int not null,start_time varchar(5)”附近使用的正确语法

    create table buyer_representations (
KeyId int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (KeyId)
);

错误1064(42000):您的SQL语法中有错误;查看与您的MySQL server版本相对应的手册,以了解在第2行“not null auto_increment,client_id int not null,start_time varchar(5),start_”附近使用的正确语法

最终编辑(此操作有效):

感谢所有的帮助每个回答…我终于可以通过将Key放入双引号(单引号和后引号不起作用)来实现这个功能

create table buyer_representations (
“Key” int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (“Key”)
);

共有2个答案

贺俊材
2023-03-14

问题是您在表中使用的列名。第一个列名是key。Key在Mysql中被认为是一个保留词,它有着特殊的含义。这就是为什么会出现错误的原因。

如果要使用相同的列名,可以在``中写入列名。

为。创建表buyer_representations(`key`int not null auto_increment,

这会很好用的。

白星渊
2023-03-14

关键字是一个保留关键字,重命名它,你应该是黄金。

关键字和保留字的完整列表可以在第10.3节关键字和保留字中找到。下面

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

在您的情况下,这应该起作用(我将其命名为test,但将其重命名为适合您的情况的任何名称)

create table buyer_representations (
test int not null auto_increment,
Client_ID int not null,
Start_Time varchar(5),
Start_Date date,
End_Date date,
Property_Type varchar(255),
Geographic_Location varchar(255),
Commission varchar(255),
Alternate_Commission varchar(255),
Lease_Commission varchar(255),
Holdover varchar(255),
Clauses varchar(2000),
primary key (test)
);
 类似资料:
  • 我正在编程一个需要Hibernate技术的项目。我得到了堆栈痕迹,但我不知道如何修复它。有什么需要帮忙的吗? 这是我的堆栈跟踪,我得到了这两个错误: SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定不兼容。SLF4J:您的绑定是1.5.5或更早版本。SLF4J:将绑定升级到1.6.x版本。或2.0.x 导入org.hibernate.hibernateException;导入org

  • 问题内容: 我在Docker容器中有一个MySQL数据库。入口点执行创建数据库的脚本和创建表的脚本。 除了一张桌子,其他所有东西都工作正常。 记录到控制台的错误是 第150行是后面的开括号 MySQL版本:8.0.3-rc-log 主机操作系统:Debian jessie 我开始考虑并且可能是保留关键字,因此我重命名了表和列,但错误仍然存​​在。 问题答案: @Bill Karwin在第一条评论中

  • 问题内容: 向MySQL发出命令时,出现错误#1064“语法错误”。 这是什么意思? 我该如何解决? 问题答案: 错误#1064表示MySQL无法理解您的命令。要解决这个问题: 阅读错误消息。 它 准确地 告诉您MySQL 在命令中哪里 混淆了。 检查您的命令。 如果您使用的编程语言来创建你的命令,使用,或同等学历,以显示 完整的命令 ,所以你可以看到它。 检查手册。 通过对MySQL的什么比较

  • 我正试图在我的本机代码中初始化CI的函数。 我得到一个错误的解析错误:语法错误,意外的[ 我能问一下如何解决这个问题吗? 使用PHP5.3.3

  • 你好,我有以下问题 查询在我的localhost(XAMMP)中运行良好,但在其他任何地方它都会给我这个错误 示例:http://sqlfiddle.com/#!9/e19e8c/2

  • commandAcceptanceException:通过JDBC语句执行DDL“CREATE table user(user_id integer not null,active integer,email varchar(255),last_name varchar(255),name varchar(255),password varchar(255),password varchar(25