McKeever Chris wrote:

MYSQL 4.0.13

I must be doing something wrong - I am trying to do a mysql dump and it
> keeps yelling that tables dont exist whenever I put a where clause in..
it runs fine when I leave the where clause off - any help here?

mysqldump -u root -p hotswap EmailDatabase_k EmailMessage_k
"--where=EmailDatabase_k.Account='kvanoni' and
EmailDatabase_k.id=EmailMessage_k.id" > kvanoni.db

if I make it just a single clause, it then says that table doesnt exist etc...

as I said, I take out the where and it works...thanks

-------------------------------------------
Chris McKeever

I expect mysqldump processes your command line one table at a time and does something like


  SELECT * FROM db.table;

to get the row data. Adding --where adds a WHERE clause to that. The problem is that you cannot refer to a table in the WHERE clause that wasn't mentioned in the FROM clause, and there's only the one table in there.

This is because mysqldump is designed to make table backups. It is not designed to run arbitrary queries. In other words, I think mysqldump is not designed to do what you are trying to do. Instead, you probably need to look into

  SELECT ... INTO OUTFILE

<http://dev.mysql.com/doc/mysql/en/SELECT.html> or, if you're trying to make a new table with a subset of the rows from the old table,

  CREATE ... SELECT

<http://dev.mysql.com/doc/mysql/en/CREATE_TABLE.html>.

If you really want a file with SQL statements, I suppose you could use CREATE...SELECT to make the subset table, then use mysqldump without a where clause on that, and finally DROP the subset table.

Michael



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to