[linux] A znova Re: Multiuzivatelsky SQL server

Jaroslav.Bachorik na ic-group.no Jaroslav.Bachorik na ic-group.no
Středa Říjen 13 10:30:02 CEST 1999




no, ale predtym musi zamknut tabulku pre update. inak sa to zupdatuje a
status bude ok. iba ak by mal pre transakcie zapnutu automaticku strategiu
zamykania. ale to neviem, ci funguje v MySQL (tiez v tom nerobim...).

                    JRD





BYS5_Linux_Diskusia na softip.sk on 13.10.99 10:13:17


Vennligst svarlinux na rak.isternet.sk


Til:      linux na rak.isternet.sk
Kopi til:       (bcc: Jaroslav Bachorik/Industrial Communication AS)
Tittel:        Re: [linux] A znova Re: Multiuzivatelsky SQL server


------------- další část ---------------



Nerobim s MySQL, ale preco zamykate celu tabulku ? Pouzite tranzakcie, to
mal mat kazdy SQL-server, pretoze jeo to jeho zakladna vlastnost.

BEGIN WORK
update xxx set pole=hodnota where pole2=?
if (status==OK) COMMIT WORK
else ROLLBACK WORK

Namiesto WORK tam moze byt aj TRAN, TRANSACTION ...

               vlk





Miroslav Oravec <mior na psg.sk> na 12.10.99 19:47:39

Odpov?zte prosím  -  linux na rak.isternet.sk

Komu:       linux na rak.isternet.sk, databases na linux.cz
Kópia:           (Na v?domí: BYS5_Linux_Diskusia)
Predmet:        [linux] A znova Re: Multiuzivatelsky SQL server



Moja byvala otazka:
> > Preto sa pytam:
> >
> > - ak ja zamknem celu tabulku na zapis, je v tej dobe pre ineho
> > pristupna  k citaniu? (Dufam, ze ano)
>

A odpoved:

> Existule vicero druhu zamku. Zde je kousek z manualu MzSQL, ten celou vec
> ozrejmi:
> -----
> LOCK TABLES tbl_name [AS alias] {READ | [LOW_PRIORITY] WRITE}
>             [, tbl_name {READ | [LOW_PRIORITY] WRITE} ...]
> ...
> UNLOCK TABLES
>
> LOCK TABLES locks tables for the current thread. UNLOCK TABLES releases
any
> locks held by the current thread. All tables that are locked by the
current
> thread are automatically unlocked
> when the thread issues another LOCK TABLES, or when the connection to the
> server is closed.
>
> If a thread obtains a READ lock on a table, that thread (and all other
> threads) can only read from the table. If a thread obtains a WRITE lock
on
> a table, then only the thread holding the lock
> can READ from or WRITE to the table. Other threads are blocked.
>
> Each thread waits (without timing out) until it obtains all the locks it
> has requested.

Vysledok:

Ak som to dobre pochopil:
Pri zamknuti Lock READ je mozne tabulku citat, pri zamknuti Lock WRITE
ten, co ju takto zamkol, ju moze citat a zapisovat, OSTATNI su v keli,
teda nemozu nic, teda ani citat, pokym ju ten, co zamkol, zase
neodomkne.
A som tam, kde som bol....(v prd....).

Alebo sa mylim? Mam asi 50 uzivatelov.(naraz).
Staci uz tu raz spomenuta finta:

select pole from xxx;

... editace..

lock tables xxx write ;
update xxx set pole=nova_hodnota;
unlock tables;

Je to dost rychle, aby to tych dalsich 49, co by chceli trebars len
citat, nezdrzovalo ?

Teoria je jedna vec, prax druha...

Vdaka za kazdu dobru radu a prakticku skusenost.




--
                         Miroslav Oravec
                           mior na psg.sk


"Ja osobne verím, ?e systém Windows, ako u?ivate?ské rozhranie,
je m?tvy. Predpokladám to asi tak behom troch, ?tyroch rokov".
(Greg Bogochwalski - riadite? SCO pre východnú Európu a strednú
Áziu, Cebit, Hannover, 1999)







 Kategori:



Další informace o konferenci linux