SQLite - как удалить, обновить правильно

  • Автор темы Автор темы soprano
  • Дата начала Дата начала

soprano

Client
Регистрация
25.08.2011
Сообщения
1 032
Реакции
1 265
Баллы
113
Есть база SQLite, нужно удалить первую строку и обновить базу.
Вариант
C#:
Развернуть Свернуть Копировать
DELETE FROM table_name WHERE Id=1;
не проходит, просто потому что нет Id
Работает выбор первой строки
C#:
Развернуть Свернуть Копировать
SELECT * FROM domofond LIMIT 1;
Как дописать правильно запрос, чтобы удаляло эту строку и обновляло таблицу?

Вот сама база
 

Вложения

открыл базу.
Рекомендую добавить все таки айдишник, потому что твой селект вернет одну строку из выбранного набора данных, но нет никаких гарантий, что это действительно первая строка в базе.
Кроме того рекомендую добавить колонку времени - парсинга, обновления или чего-нить - вот увидишь, понадобится))
В MySql есть еще столбец timestamp - автообновляется при изменении строки, полезная вещь, а в склЛайт помоему его нет.
 
Короче, решения без Id - нет?
 
пробуй без where. Или задавай там какое-то гарантированное условие. Но не факт, что будет работать как хочешь
нет условия, вернее оно одно - удаление первой строки в таблице.
 
а решение какое применительно к приложенной базе?
SQL:
Развернуть Свернуть Копировать
DELETE FROM table_name LIMIT 1;
DELETE FROM table_name WHERE 1=1 LIMIT 1;
можно попробовать эти варианты
 
[15:57:36] Ошибка при выполнении SQL запроса к базе данных '1kv-vyborg': near "LIMIT": syntax error
при любом из этих запросов
 
В реляционных базах нет понятия первая строка или последняя. Все зависит от запроса! При одном запросе строка может быть первой, а при другом какой-то еще. Можно говорить лишь о номере строки в результате выполнения какого-то конкретного запроса. По факту, если в запросе нет конкретной сортировки по какому-либо столбцу ( id, время добавления, ...), то нет гарантии что одна и та же запись будет в результате запроса всегда занимать одну и ту же позицию.
 
  • Спасибо
Реакции: Yuriy Zymlex
В реляционных базах нет понятия первая строка или последняя. Все зависит от запроса! При одном запросе строка может быть первой, а при другом какой-то еще. Можно говорить лишь о номере строки в результате выполнения какого-то конкретного запроса. По факту, если в запросе нет конкретной сортировки по какому-либо столбцу ( id, время добавления, ...), то нет гарантии что одна и та же запись будет в результате запроса всегда занимать одну и ту же позицию.
Мне нужно чтобы удалялась именно та строка, данные из которой берутся в данный момент, в цикле. Номер не имеет значения. Первая - это по привычке, взял, отработал, удалил.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)