[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