Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

rename table cand tabela e in use
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
dev8



Data înscrierii: 01/Iun/2004
Mesaje: 50

Trimis: Joi Noi 17, 2005 1:03 am    Titlul subiectului: rename table cand tabela e in use  

ce se intampla daca fac un rename table cand din tabela aceea se citeste ? in manual nu spune decat ca rename nu permite sa se efectueze alte operatii in timpul rename, dar daca rename este lansata in timp ce alt thread ruleaza pe tabela respectiva ? asteapta ? renunta ? kill threadul initial ?
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Joi Noi 17, 2005 8:45 am    Titlul subiectului:  

daca tu dai rename si altu vrea sa acceseze tabela pe el nu il lasa .. ii da deny .. iar daca e invers .. pe tine nu te va lasa ...
Sus  
Radical



Data înscrierii: 16/Feb/2004
Mesaje: 327
Locație: Bucuresti

Trimis: Joi Noi 17, 2005 10:29 am    Titlul subiectului:  

Cod: MySQL Manual  -> SQL Statement Syntax -> RENAME TABLE Syntax:
[........][b]The rename operation is done atomically, which means that no other thread can access any of the tables while the rename is running.[/b]
[........]If the statement renames more than one table, renaming operations are done from left to right.[........][b]When you execute RENAME, you can't have any locked tables or active transactions.[/b] You must also have the ALTER and DROP privileges on the original table, and the CREATE and INSERT privileges on the new table. If MySQL encounters any errors in a multiple-table rename, it will do a reverse rename for all renamed tables to get everything back to the original state. Pentru ca operatia sa se faca atomic MySQL trebuie sa faca un lock: WRITE si READ... pentru a redenumi un tabel... tu vei ASTEPTA... pana cand capeti acest "lock"... dupa ce il capeti nimeni nu mai poate accesa tabelul... are loc rename-ul date de tine... acuma daca totul este:

- OK -> lock-urile sunt eliberate... si tabelele sunt disponibile pentru alte cereri... dar sunb alt nume... (sau ma rog... cine stie ce faci... poate doar il muti in alta baza de date...)

- NOT OK -> MySQL face "undo" pana la momentul in care a aplicat lock-ul apoi elibereaza lock-urile !!!!

Cam asta este !
Sus  
dev8



Data înscrierii: 01/Iun/2004
Mesaje: 50

Trimis: Joi Noi 17, 2005 11:32 am    Titlul subiectului:  

deci rename asteapta, nu renunta, da ?

thanks
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Joi Noi 17, 2005 11:37 am    Titlul subiectului:  

De ce nu incerci? Pune un lock pe o tabela si apoi incearca sa faci rename.
Sus  
dev8



Data înscrierii: 01/Iun/2004
Mesaje: 50

Trimis: Joi Noi 17, 2005 1:30 pm    Titlul subiectului:  

da, asteapta, testat :)

thanks guys
Sus  
Radical



Data înscrierii: 16/Feb/2004
Mesaje: 327
Locație: Bucuresti

Trimis: Joi Noi 17, 2005 2:41 pm    Titlul subiectului:  

em@il a scris: De ce nu incerci? Pune un lock pe o tabela si apoi incearca sa faci rename. Beware: Citat: MySQL Man -> SQL Statement Syntax -> LOCK TABLES and UNLOCK TABLES Syntax
If you use ALTER TABLE on a locked table, it may become unlocked.

MySQL Man -> A Problems and Common Errors -> Problems with ALTER TABLE
If you use ALTER TABLE on a transactional table or if you are using Windows or OS/2, ALTER TABLE will UNLOCK the table if you had done a LOCK TABLE on it. This is because InnoDB and these operating systems cannot drop a table that is in use.

Multa bafta !
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community