2013-01-23 272 views
1

我只是想將現有的表格結構複製到另一個數據庫中。所有查詢都在phpMyAdmin中執行:show後出現語法錯誤在mysql中創建表格

我第一次執行:

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 - 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 ' id int(11) NOT NULL AUTO_INCREMENT, Â session_id int(11) NOT NULL, Â `keywor' at line 1

語法錯誤在哪裏? 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

uhmm,你的create table語句正在小提琴上工作,http://www.sqlfiddle.com/#!2/ab087 –

+0

'session_id int(11)NOT NULL,''裏面有未知的符號'' 。 – hjpotter92

回答

1

按照錯誤,您的發言似乎有未知的符號在裏面Â

可能是您的新訂閱源被誤解了。我這樣說,是因爲它是在該行僅引人注目結束:符號session_idkeyword_id聲明之前如何出現

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

通知?

+1

當我複製粘貼時,一些奇怪的字符以空格走私到字符串中。替換所有空格/換行符解決了問題。 –

+0

這可能是因爲UTF-8和其他文本格式轉換。當我移植linux和Windows的東西時,會發生很多事情。 – hjpotter92

0

當心在線編輯phpmyadmin的新版本。有時從這些文本框複製可能會給你奇怪的字符。

enter image description here

2

命令

show create table table_name; 

從數據庫檢索INFORMATION_SCHEMA具有缺省字符集歸類utf8_general_ci

這樣的數據將被存儲在與該字符信息具體爲

當你鍵入相同的手動,那麼你不會得到錯誤

在錯誤顯示你的發言有未知的符號A屬於默認字符集的字符

更多信息集和校對規則可以被發現here這是最好的一個參考瞭解他們,以避免或解決未來的錯誤

0

複製並粘貼到記事本或文本編輯器,然後嘗試和repaste它。你可能在那裏有一些垃圾角色。