| 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 |
|
| |