我用的是mysql-5.6.22-winx64版本,在命令行输入下述语句:
mysql> create table db_shop
.tb_admin
(
-> 'id' int(4) not null default '0',
-> 'name' varchar(25) default null,
-> 'pwd' varchar(50) default null,
-> primary key('id')
-> );
按回车出现下述语句:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''id'
int(4) not null default '0',
'name' varchar(25) default null,
'pwd' varchar' at line 2
请问各位大侠是什么原因?我执行的语句是照抄书上的原文,我该怎么办?
你的也没错,主要是你的字段像id,name,pwd不是用单引号包围,而是用数字键1左边那个键
而包围的作用是:name
来避免你自己的标识符(字段名,表名等)和数据库SQL中的关键字冲突!
改成这样试试
CREATE TABLE db_shop.tb_admin1(
id INT(4) NOT NULL DEFAULT '0',
NAME VARCHAR(25) DEFAULT NULL,
pwd VARCHAR(50) DEFAULT NULL,
PRIMARY KEY(id)
);
表的列名,没必要用单引号括起来,直接用名称。类型在后面描述了。
Name
Password
User
这些还是需要转义的。
z_yong_yong 说的对,应该用`
而不是'
是你定义的默认值有问题!你的ID是int类型,但是你定义的默认值是字符串('0').你把单引号去掉
你的id是int类型的,将default后‘0'改为0