База данных HTML5: ошибка SQL при DELETE LIMIT - PullRequest
0 голосов
/ 19 сентября 2011

Я пробую базу данных HTML5 и обнаружил, что DELETE не работает с LIMIT.

Попытка в Chrome:

> select * from my_table limit 1
item  name
--------------
1     Hi

> delete from my_table limit 1
near "limit": syntax error

Что-то не так с этим удалением?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 сентября 2011

Для диалектов SQL, которые допускают ограничение на SELECT, но не удаляют, попробуйте DELETE FROM my_table WHERE item IN (SELECT item FROM my_table LIMIT 1)

2 голосов
/ 19 сентября 2011

Я не верю, что 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 редко бывает полезен без наложения какого-либо порядка на строки, выбираемые вашим запросом.

...