2

我只想将现有的表结构复制到另一个数据库中。所有查询都在 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 服务器版本相对应的手册,以在第 1 行的 ' idint(11) NOT NULL AUTO_INCREMENT, Â session_idint(11) NOT NULL, Â '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

4 回答 4

2

根据错误,您的语句中似乎有未知符号Â

可能,您的换行提要被误解了。我这么说是因为它只在行尾很明显:

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

注意符号在声明之前是如何出现session_idkeyword_id

于 2013-01-23T10:01:19.717 回答
2

命令

show create table table_name;

从具有默认字符集排序规则 utf8_general_ci的数据库information_schema中检索信息

因此数据将专门与该字符一起存储

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

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

有关字符集和排序规则的更多信息可以在这里找到,这是最好的参考,以了解它们以避免或解决未来的错误

于 2013-01-23T10:14:21.967 回答
0

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

于 2013-01-26T05:43:11.853 回答
0

当心带有在线编辑功能的新版本 phpmyadmin。有时从这些文本框中复制可能会给您带来奇怪的字符。

在此处输入图像描述

于 2013-01-23T10:09:35.290 回答