在mysql中显示create table之后的语法错误

时间:2013-01-23 09:55:12

标签: mysql phpmyadmin create-table

我只想将现有的表结构复制到另一个数据库中。所有查询都在phpmyadmin中执行:

我先执行:

SHOW CREATE TABLE keyword_session

然后我在另一个数据库中执行它的输出:

CREATE TABLE `keyword_session` (  
`id` int(11) NOT NULL AUTO_INCREMENT, 
`session_id` int(11) NOT NULL,
`keyword_id` int(11) NOT NULL,  PRIMARY KEY (`id`))
ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

我收到了错误:

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   'id int附近(11)NOT NULL AUTO_INCREMENT,session_id int(11)NOT   NULL,第1行的“keywor”

语法错误在哪里?是不是SHOW CREATE TABLE是一个可以执行的结果?


修改 关于我尝试创建表的系统的一些信息:

Database server :
  Server: Localhost via UNIX socket
  Software: MySQL
  Software version: 5.1.63-0ubuntu0.11.10.1 - (Ubuntu)
  Protocol version: 10
  User: ...
  Server charset: UTF-8 Unicode (utf8)
Web server:
  ...
phpMyAdmin:
  Version information: 3.5.1, latest stable version: 3.5.5
  ...

4 个答案:

答案 0 :(得分:2)

命令

show create table table_name;

从数据库中检索信息 information_schema ,其中包含默认字符集整理 utf8_general_ci

所以数据将与那些字符一起存储

当您手动输入相同内容时,您将不会收到错误

如错误中所示,您的语句具有未知符号Â,该符号属于默认字符集

有关字符集和整理的更多信息可以找到here,这是最好的参考,以了解它们以避免或解决未来的错误

答案 1 :(得分:1)

根据错误,您的陈述中似乎包含未知符号 Â

您的换行符可能会被误解。我是这么说的,因为它只在行结束时才引人注目:

id int(11) NOT NULL AUTO_INCREMENT, Â session_id int(11) NOT NULL, Â `keywor

注意符号在session_idkeyword_id声明之前的显示方式?

答案 2 :(得分:0)

谨防在线编辑的phpmyadmin新版本。有时从这些文本框中复制可以给你一些奇怪的字符。

enter image description here

答案 3 :(得分:0)

将其复制并粘贴到记事本或文本编辑器中,然后尝试重新调整它。你可能有一些垃圾字符。