Haitao Jiang <[EMAIL PROTECTED]> wrote: > Thanks so much for the reply! So, if I understand correctly, to swap > the table like I described, I should do: > > LOCK TABLES A write,A2 write; > FLUSH TABLES; > rename table A to A1; > rename table A2 to A; > UNLOCK TABLES; > > Right? If there is no write to either A or A2, then there is no need > to lock the table, right?
You can't rename locked tables. RENAME is atomic anyway so you can safely use it without lock. But your software should be aware of a possible race condition that happens between two RENAME TABLEs. > Thanks! > > On Mon, 09 Aug 2004 19:21:39 +0300, Egor Egorov <[EMAIL PROTECTED]> wrote: >> Haitao Jiang <[EMAIL PROTECTED]> wrote: >> >> > Case 1: I have a table A under a running MySQL 4.1.3b server. If I >> > replace A.MYD and A.MYI files without stop and start the server, will >> > data gets corrupted? >> >> It depends on many factors. Honestly, there are lots of cases where you will >> get correct data and nothing wrong will happen. But you have to be an >> experience Unix developer to understand Unix internals in order to dance like >> that. :) >> >> So the general answer is: don't, it's too dangerous. >> >> > Case 2: I rename A to A1, and A2 to A, assume A, A2 have the same >> > schema but different data/index. Is it bad? Will data gets corrupted? >> > I tied this one, it seems ok. >> >> Yes, you're right, it just *SEEMS* ok. :) >> >> If you really need to replace table files, use FLUSH TABLES, LOCK TABLES: >> >> http://dev.mysql.com/doc/mysql/en/FLUSH.html >> http://dev.mysql.com/doc/mysql/en/LOCK_TABLES.html >> >> -- >> For technical support contracts, goto https://order.mysql.com/?ref=ensita >> This email is sponsored by Ensita.net http://www.ensita.net/ >> __ ___ ___ ____ __ >> / |/ /_ __/ __/ __ \/ / Egor Egorov >> / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] >> /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net >> <___/ www.mysql.com >> >> >> -- >> MySQL General Mailing List >> For list archives: http://lists.mysql.com/mysql >> To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] >> >> > -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]