#1064 - 你的SQL语法有错误; 查看与MySQL服务器版本对应的手册

tsj*_*r63 9 mysql error-handling create-table

我是新手PHP,MySQL并且在我正在研究的学习项目上遇到了一些麻烦.

每当我尝试创建一个表

CREATE TABLE transactions(
id int NOT NULL AUTO_INCREMENT,
location varchar(50) NOT NULL,
description varchar(50) NOT NULL,
category varchar(50) NOT NULL,
amount double(10) NOT NULL,
type varchar(6) NOT NULL, 
notes varchar(512),
receipt int(10),
)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在')NOT NULL附近使用正确的语法,输入varchar(6)NOT NULL,注释varchar(512),收据int(10),'在第6行**

以下是我正在使用的一些信息

  1. 服务器类型:MySQL
  2. 服务器版本:5.5.32 - MySQL社区服务器(GPL)
  3. phpMyAdmin:4.0.4.1,最新稳定版本:4.1.7

我已经花了一天时间把头靠在墙上,现在我觉得是时候寻求帮助了.我想知道是否有人能告诉我我做错了什么?

G o*_*one 11

删除逗号

receipt int(10),

而且也AUTO INCREMENT应该是一个关键

double 数据类型还需要小数位的精度,所以正确的语法是 double(10,2)


Ahm*_*hir 5

一件事很明显,那就是您必须在此处删除逗号

receipt int(10),
Run Code Online (Sandbox Code Playgroud)

但实际的问题是因为线

amount double(10) NOT NULL,
Run Code Online (Sandbox Code Playgroud)

更改为

amount double NOT NULL,
Run Code Online (Sandbox Code Playgroud)

  • 自从你问这个问题已经有好几年了,但对于后代来说,这样做的原因是你用来给 double 提供长度的语法是错误的。您需要以 double(10, 2) 格式给出长度,其中 2 是小数位数。删除长度只是使它使用默认值。 (3认同)