Eliminare record da una tabella già esistente.
Tutti
Eliminare tutti i record
DELETE FROM nome_tabella
WHERE
Stabilire una restrizione sull’elimininazione
DELETE FROM nome_tabella
WHERE condizione
LIMIT
Limitare a un certo numero le eliminazioni.
Utile per non tenere occupato il DB: sarà necessario ripetere il comando finché il numero di righe eliminate non sarà minore del numero specificato.
DELETE FROM nome_tabella
...
LIMIT numero
ORDER BY
Seguire un certo ordine durante l’eliminazione di più record.
Utile se esistono dei vincoli di integrità tra i record: sarà necessario ripetere il comando finché il numero di righe eliminate non sarà minore del numero specificato.
DELETE FROM nome_tabella
...
ORDER BY criterio
LIMIT numero
Tanti
Se i record da eliminare sono la maggioranza si può rendere l’operazione più veloce: si copiano i pochi record da mantenere in una nuova tabella e poi…
INSERT INTO nuova_tabella
SELECT *
FROM tabella
WHERE record_da_mantenere;
RENAME TABLE tabella TO vecchia_tabella;
RENAME TABLE nuova_tabella TO tabella;
DROP TABLE vecchia_tabella;