Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokowanie tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
rogeros
Witam.
Mam pytanko. Czy jest możliwość zablokowania tabeli lub kilku tabel
przed zapisem lub zmianami tak aby odczyt był tylko możliwy.
Ale blokada byla aktywna az do odwolania moze to być za tydzień, miesiąc

slyszalem ze mozna blokować jakoś tabele podczas transakcji ale czy jest szansa zablokowania jej (tj nadania atrybutu tylko do odczytu) na czas nie okreslony
TomASS
Tranzakcji jako takich w MySQL nie ma i jednocześnie blokowania tabel. Takowe zostały wprowadzone dopiero w MySQL 5. Dlaczego chcesz blokować tabele?


==========edit=========


Przepraszam bardzo, właśnie przeszukując manuala natknęłem się na:
  1. CREATE TEMPORARY TABLE tmp (
  2. article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
  3. price DOUBLE(16,2) DEFAULT '0.00' NOT NULL);
  4.  
  5. LOCK TABLES shop READ;
  6.  
  7. INSERT
  8. INTO tmp SELECT article, MAX(price)
  9. FROM shop GROUP BY article;
  10.  
  11. SELECT shop.article, dealer, shop.price
  12. FROM shop, tmp
  13. WHERE shop.article=tmp.article AND shop.price=tmp.price;
  14.  
  15. UNLOCK TABLES;
  16.  
  17. DROP TABLE tmp;


Czyli istnieje możliwość blokowania tabel od MySQL w wersji 4.1

Oto Link
Miklosz
Sorry za odgrzewanie nieświeżych kotletów, ale nurtuje mnie podobny problem jak autora wątku:
Cytat
Czy jest możliwość zablokowania tabeli lub kilku tabel przed zapisem lub zmianami tak aby odczyt był tylko możliwy.
Ale blokada byla aktywna az do odwolania moze to być za tydzień, miesiąc


Tzn. czy można zablokować tabelę czymś trwalszymi niż lock?
Chodzi mi o to, aby IF ((SELECT wartosc FROM ustawienia where nr = 111) = 1), nie można było zrobić UPDATE na innej tabeli
Musi to być pilnowane jakoś po stronie sql właśnie, bo skryptów za dużo musiałbym przepisywać
A może trigger, który blokował by update??
nevt
a nie prościej nadać użytkownikowi który łączy się z bazą z serwera www uprawnień do wykonywania na tej tabeli wyłącznie SELECT questionmark.gif
Miklosz
chodzi o czasowe blokowanie tabeli z poziomu aplikacji - konkretnie - blokowanie stanów magazynowych na czas remanentu.
pomysł z nadawaniem uprawnień jest mało realny, bo musiałbym je nadawać i obierać z poziomu php...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.