Удалить первую строку из таблицы SQLITE в python - PullRequest
0 голосов
/ 18 марта 2020

Это простой вопрос, как я могу просто удалить первую строку из таблицы без указания критериев поиска. Обычно это:

c.execute('DELETE FROM name_table WHERE tada=?', (tadida,))

Я просто хочу удалить первую строку. Не имея ГДЕ части. Причина в том, что я хочу создать таблицу FIFO (или стек), добавить снизу и удалить сверху. Я могу сделать это, отслеживая время и дату или присваивая строкам идентификатор. Но я бы предпочел описанный метод. Thanx.

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Я просто хочу удалить первую строку

SQL Таблицы не имеют внутреннего порядка, поэтому не определено понятие первая строка, кроме столбца (или набор столбцов) предназначен для упорядочения.

Предполагая, что у вас есть упорядочивающий столбец, скажем id, вы можете использовать limit, чтобы ограничить, какую строку следует удалить:

delete from mytable order by id limit 1

Удаляет запись с наименьшими значениями id из таблицы.

0 голосов
/ 18 марта 2020

Если вы не используете пользовательскую версию sqlite , вы не можете использовать ORDER BY или LIMIT с DELETE.

Если ваша версия sqlite не была построена с этой опцией (некоторые распространяются в ОС, некоторые нет), а создание и установка копии с ней выходит за рамки вашего уровня комфорта, альтернатива, при условии, что для заказа используется столбец с именем id с наименьшим значением из id самая старая запись:

DELETE FROM yourtable WHERE id = (SELECT min(id) FROM yourtable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...