MySQL创建表 错误代码1064
用sqlyog图形化界面写的语句复制如下:
CREATE TABLE `student`.`student`( `id` INT(12) NOT NULL AUTO_INCREMENT, `name` VARCHAR(23), PRIMARY KEY (`id`) );
sqlyog中截图如下:
我在sqlyog中手动代码创建表语句如下:
CREATE TABLE 'student'.'student_info'( 'stu_id' INT(12) NOT NULL AUTO_INCREMENT, 'stu_name' VARCHAR(23), PRIMARY KEY ('stu_id') );
大家能看出什么区别吗?原来是单引号的问题,要用用键盘左上角的~那个键的引号,才是对的,而不是英文的单引号,用英文的单引号会提示1064错误代码如下:
1 queries executed, 0 success, 1 errors, 0 warnings
查询:CREATE TABLE 'student'.'student_info'( 'stu_id' INT(12) NOT NULL AUTO_INCREMENT, 'stu_name' VARCHAR(23), PRIMARY KEY ('stu_id') ...
错误代码: 1064
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 ''student'.'student_info'( 'stu_id' INT(12) NOT NULL AUTO_INCREMENT, 'stu_name' V' at line 1
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0.001 sec
报1064错误另外还要注意字段名不要是mysql关键字。
另一种解决办法:不要加引号,避免关键字,也可以成功创建表。比如下面这条sql语句:
create table teach_info (id int(11), name varchar(11) );
也能成功创建表teach_info
在插入语句时也出现了这种由于引号引起的错误情况:
这是执行第6行sql语句报的错,原因是VALUES 后面的周杰伦用的是键盘左上角的引号,这里应该用英文的单引号,其中第7行sql语句是自动生成的语句(正确的格式)。第5行语句则错在字段用单引号错误。
所以总结就是:用键盘左上角引号的字段,其实可以不用添加那个引号,就直接写字段就好,而添加的值等用英文的单引号引起来。