2009-07-18 22 views
1

此問題是基於this thread在MySQL中運行.sql文件

我運行不成功

sudo mysql 
\. /users/cs/SO_db/posts.sql 

我得到的錯誤

ERROR 1146 (42S02): Table 'personal.posts' doesn't exist 

MySQL's manual

A five-character SQLSTATE value ('42S02'). The values are specified by ANSI SQL and ODBC and are more standardized. Not all MySQL error numbers are mapped to SQLSTATE error codes. The value 'HY000' (general error) is used for unmapped errors.

Error: 1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE)

Message: Table '%s.%s' doesn't exist

如何解決錯誤信息?

+1

你究竟在做什麼? – 2009-07-18 16:36:33

+0

我想把SO的用戶數據放在.xml -form中。 – 2009-07-18 19:08:24

回答

2

正如我在你引用的文章中提到的,你需要先創建表格。 查看您需要的列上的XML或SQL輸出。例如這裏是一張可以保存badge.xml輸出的表格(我現在沒有其他可用的..)

CREATE TABLE `badges` (
    `Id` int(11) NOT NULL default '0', 
    `UserId` int(11) not NULL, 
    `Date` datetime not NULL, 
    `Name` varchar(32) not NULL, 
    PRIMARY KEY (`Id`), 
    KEY `Date` (`Date`), 
    KEY `UserId` (`UserId`) 
) ; 
0

你真的創建了數據庫'個人'和表'職位'?

你可能想嘗試這樣的:

mysql -h localhost -u <user> -p<password> -D personal < /users/cs/SO_db/posts.sql 
0

你posts.sql包含一些語句引用的帖子表,它不會在您的個人模式存在。

要「解決」錯誤,請確保創建表!

3

已加載的SQL腳本引用了數據庫中不存在的數據庫和/或表。

通常人們不會撥打mysql工具sudo,因爲系統用戶權限與MySQL用戶不同。

要通過MySQL的執行SQL腳本,我會嘗試這樣的:

cat somefile.sql | mysql -u <mysqluser> -p <mysqldb> 

此命令將加載「somefile.sql」到mysql工具,連接到MySQL服務器上localhost爲用戶<mysqluser>和選擇數據庫<mysqldb>。在執行腳本之前,mysql工具將提示輸入<mysqluser>的訪問密碼。

0

可能你的sql文件不包含「create table」命令。

相關問題