Składnia polecenia TRUNCATE jest następująca TRUNCATE TABLE nazwa_tablicy; Polecenie TRUNCATE TABLE usuwa zupełnie wszystkie dane z tablicy o nazwie nazwa_tablicy. Logicznie, jest to ekwiwalent polecenia DELETE usuwającego wszystkie rekordy, jednak są praktyczne różnice. W przypadku tablic typu InnoDB polecenie TRUNCATE TABLE jest zamieniane na odpowiednie polecenie DELETE, więc w tym przypadku nie ma zupełnie różnic, jednak w innych przypadkach są różnice: Operacja TRUNCATE usuwa zupełnie i tworzy od nowa tablicę co jest znacznie szybsze niż usuwanie rekordu po rekordzie. Operacje TRUNCATE nie są bezpieczne w przypadku transakcji; baza na pewno zgłosi błąd jeśli mamy aktywną transakcję lub zamknięty dostęp do tablicy. Nie jest zwracana liczba usuniętych rekordów. Tak długo jak plik z definicją tablicy (plik 'nazwa_tablicy.frm') jest nieuszkodzony, tak długo można wykonać polecenie TRUNCATE TABLE i w ten sposób odtworzyć pustą tabelę nawet w przypadku kiedy dane z tabeli lub indeksy są uszkodzone. Uchwyt talicy, którym posługuje się wewnętrznie MyQL nie pamięta ostatnio użytej wartości AUTO_INCREMENT ale zaczynać odliczać od początku. Polecenie TRUNCATE TABLE pochodzi od rozszerzenia języka SQL, które wprowadziła firma Oracle.
Listing
Ranga: Administrator serwisu Punktów: 0