mysql建表报错,查手册看不懂,求解?

mysql建表报错,查手册看不懂,求解?

create table abc(
   id int unsigned  primary_key auto_increment,
   usename char(20) not null default '',
   gender char(1) not null default '',
   weight tinyint unsigned not null default 0, 
   birth date not null default 0,
   salary decimal(8,2) not null default '000000.00',
   lastlogin timestamp not null default 0,
   intro varchar(1500) not null default '',
)engine myisam charset=utf8;

报错: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 'primary_key auto_increment,username char(20) not null default '',gender c' at line 3

阅读 3.3k
2 个回答

创建带索引的数据库表需要为表名和属性添加反单引号,并且你当前的primary key的位置需要调整一下:

create table `abc`(
   `id` int unsigned auto_increment,
   `usename` char(20) not null default '',
   `gender` char(1) not null default '',
   `weight` tinyint unsigned not null default 0, 
   `birth` date not null default 0,
   `salary` decimal(8,2) not null default '000000.00',
   `lastlogin` timestamp not null default 0,
   `intro` varchar(1500) not null default '',
   primary key (`id`)
)engine myisam charset=utf8;

我刚刚试了一下,除了primary key其他的属性和表名不加反单引号也可以,即这样也是可以的:

create table abc(
   id int unsigned auto_increment,
   usename char(20) not null default '',
   gender char(1) not null default '',
   weight tinyint unsigned not null default 0, 
   birth date not null default 0,
   salary decimal(8,2) not null default '000000.00',
   lastlogin timestamp not null default 0,
   intro varchar(1500) not null default '',
   primary key (`id`)
)engine myisam charset=utf8;

参考:mysql创建和删除表

primary_key声明的不对,楼上解

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题