Search code examples
mysqlsqlmysql-error-1146

To run a .sql -file in MySQL


This question is based on this thread.

I run unsuccessfully

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

I get the error

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

MySQL's manual says

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.

and

Error: 1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE)

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

How can you solve the error message?


Solution

  • As I mentioned in the post you referenced, you NEED to create the tables first. Peek at the XML or the SQL output on what columns you need. e.g. here is a table that can hold the output from badges.xml (I don't have the others available right now..)

    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`)
    ) ;