我只想将现有的表结构复制到另一个数据库中。所有查询都在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
...
答案 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_id
和keyword_id
声明之前的显示方式?
答案 2 :(得分:0)
谨防在线编辑的phpmyadmin新版本。有时从这些文本框中复制可以给你一些奇怪的字符。
答案 3 :(得分:0)
将其复制并粘贴到记事本或文本编辑器中,然后尝试重新调整它。你可能有一些垃圾字符。