mercredi 12 août 2015

Drop the entries with lowest values in SQLite in place

Let's consider the following table

CREATE TABLE t ( param INTEGER, te TEXT );

If we want to sort it by param and show its first 20 entries we can do

SELECT * FROM t ORDER BY param DESC LIMIT 20;

If we want to save only those 20 rows we could do

ALTER TABLE t RENAME TO t_bak;
CREATE TABLE t (param INTEGER, te TEXT);
INSERT INTO t SELECT * FROM t ORDER BY param DESC LIMIT 20;
DROP t_bak

Can this be done in place (or at least in a less clumsy manner)?

Aucun commentaire:

Enregistrer un commentaire