Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LOCK_TABLES i TRUNCATE
Forum PHP.pl > Forum > Bazy danych > MySQL
sobstel
wykonanie ponizszeg kodu

  1. <?php
  2.  
  3. mysql_query('LOCK TABLES table WRITE');
  4. mysql_query('TRUNCATE TABLE table');
  5. mysql_query('UNLOCK TABLES');
  6.  
  7. ?>


skutkuje wystapieniem nastepujacego bledu :

Fatal error: 1192:Can't execute the given command because you have active locked tables or an active transaction


Czy jest jakis sposob na uzycie TRUNCATE po zablokowaniu tabeli?
markac
Zastanów się chwilę...
Zablokowłeś tabelę dla zapisu i pytasz się jak usunąć rekordy? withstupidsmiley.gif

Edit:
Pomyliłem blokadę READ z WRITE biggrin.gif
sobstel
Cytat(markac @ 2005-08-03 21:35:47)
Zastanów się chwilę...
Zablokowłeś tabelę dla zapisu i pytasz się jak usunąć rekordy?  withstupidsmiley.gif

w takim razie dlaczego DELETE FROM table dziala? zablokowanie do zapisu to nie tylko zablokowanie do wykonywania INSERT i UPDATE
markac
Cytat
TRUNCATE TABLE differs from DELETE FROM ... in the following ways:

Truncate operations drop and re-create the table, which is much faster than deleting rows one by one.
Not transaction-safe; you will get an error if you have an active transaction or an active table lock.
Doesn't return the number of deleted rows.
As long as the table definition file `table_name.frm' is valid, the table can be re-created this way, even if the data or index files have become corrupted.


Mam nadzieję, że to trochę rozjaśniło sytuację cool.gif
sobstel
no rozjasnilo ;-) tylko tyrzeba bylo tak od razu ;-)
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-2025 Invision Power Services, Inc.