2013-07-02 37 views
4

我遇到了一個奇怪的幾分我的事兒。我跑的查詢從文件名在Windows是文件名general.sql MySQL中保留

source c:\sql\general.sql但失敗

mysql> source c:\sql\general.sql 
-------------- 
mysql Ver 14.14 Distrib 5.6.11, for Win32 (x86) 

Connection id:   6 
Current database:  joins 
Current user:   [email protected] 
SSL:     Not in use 
Using delimiter:  ; 
Server version:   5.6.11 MySQL Community Server (GPL) 
Protocol version:  10 
Connection:    localhost via TCP/IP 
Server characterset: utf8 
Db  characterset: utf8 
Client characterset: cp850 
Conn. characterset: cp850 
TCP port:    3306 
Uptime:     5 days 2 hours 53 min 45 sec 

Threads: 1 Questions: 167 Slow queries: 0 Opens: 86 Flush tables: 1 Open ta 
bles: 62 Queries per second avg: 0.000 
-------------- 

ERROR 1064 (42000): 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 'sourc 
e c:ql' at line 1 
    -> 

這個查詢

CREATE TABLE mytable (
    id INT NOT NULL AUTO_INCREMENT, 
    name varchar(50) NOT NULL, 
    PRIMARY KEY (id) 
); 

然而,當我嘗試運行相同的查詢,但是這次命名我的文件stuff.sql

mysql> source c:\sql\stuff.sql 
Query OK, 0 rows affected (0.65 sec) 

這是一個常見錯誤?

更新

source c:\sql\\general.sql產生這個錯誤

mysql> source c:\sql\\general.sql 
-------------- 
mysql Ver 14.14 Distrib 5.6.11, for Win32 (x86) 

Connection id:   6 
Current database:  joins 
Current user:   [email protected] 
SSL:     Not in use 
Using delimiter:  ; 
Server version:   5.6.11 MySQL Community Server (GPL) 
Protocol version:  10 
Connection:    localhost via TCP/IP 
Server characterset: utf8 
Db  characterset: utf8 
Client characterset: cp850 
Conn. characterset: cp850 
TCP port:    3306 
Uptime:     5 days 3 hours 42 min 4 sec 

Threads: 1 Questions: 192 Slow queries: 0 Opens: 97 Flush tables: 1 Open ta 
bles: 62 Queries per second avg: 0.000 
-------------- 

ERROR: 
Unknown command '\\'. 
    -> ; 
ERROR 1064 (42000): 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 'sourc 
e c:ql\\general.sql' at line 1 
mysql> 
+0

沒有,但我認爲antislash是 – 2013-07-02 16:40:09

+0

'附近「源C:QL」在行1'你可能需要使用其他的斜線或逃避你的反斜線'源C:/ SQL/stuff.sql' – Prix

回答

3

使用正斜槓:

mysql> source c:/sql/general.sql 

我永遠不會原諒微軟使用的元字符爲它們的默認目錄分隔符。

1

\g在MYSQL中用作輸出格式化字符。您需要雙重逃脫,例如

source c:\sql\\general.sql