Я не верю, что delete
поддерживает limit
(или, по крайней мере, на любом диалекте SQL, о котором я знаю).Вместо этого вам нужно либо удалить все из таблицы с помощью
delete from my_table;
, либо более конкретно указать строки, которые вы хотите удалить:
delete from my_table where item=1;
Отредактировано, чтобы добавить: Как правило, базы данных не заботятся о порядке строк, если вы не укажете это (либо с помощью оператора order by
, либо с помощью функции row_number()
, которая присутствует внекоторые РСУБД).Таким образом, в общем, если вы вызываете select * from my_table limit 1;
несколько раз, вы не гарантируете, что каждый раз будете получать одну и ту же строку.Другими словами, если вы на самом деле не хотите просто указать определенное количество строк в таблице и вам не важно, какие строки вы получаете, оператор limit
редко бывает полезен без наложения какого-либо порядка на строки, выбираемые вашим запросом.