SQL Удалить записи в пределах определенного диапазона
спросил
Изменено 1 год, 3 месяца назад
Просмотрено 193к раз
Вероятно, это очень простой вопрос для человека с опытом, но я просто хотел узнать самый безопасный способ удалить пару сотен записей в таблице SQL, попадающих в определенный диапазон.
Например, мне нужно удалить строки с идентификатором от 79 до 296:
Меня беспокоит, что если я скажу удалить все с идентификатором (> 79 И < 296), то это может буквально стереть всю таблицу.
- sql
- sql-delete
- записей
4
Если вы используете Sql Server
, удалите из таблицы, где идентификатор находится в диапазоне от 79 до 296.
Примечание: оператор между
включительно, поэтому строки 79
и 296
также будут удалены
После Ваше редактирование: Вы теперь пояснили, что вы хотите:
ID (> 79 и <296)
SO. удалить из таблицы, где id > 79 и id < 296
8
Вы указали идентификатор условия (> 79 и < 296), тогда ответ:
удалить из вкладки где идентификатор > 79и идентификатор < 296
это то же самое, что:
удалить из вкладки где идентификатор между 80 и 295
, если id
является целым числом.
Все отвеченные:
удалить из вкладки где идентификатор между 79 и 296
это то же самое, что:
удалить из вкладки где идентификатор => 79 и идентификатор <= 296
Обратите внимание на разницу.
2УДАЛИТЬ ИЗ имя_таблицы ГДЕ ID МЕЖДУ 79 И 296;
0
вы также можете просто изменить свое удаление на select *
и проверить свой выбор
выбранные записи будут такими же, как и удаленные
вы также можете обернуть свое заявление в начало / откат, если вы не уверены - проверьте оператор, затем, если все хорошо, удалите откат
, например
SELECT * FROM table WHERE id BETWEEN 79 AND 296
покажет все записи, соответствующие тому, где если это те желания, которые вы «действительно» хотите удалить, используйте
УДАЛИТЬ ИЗ таблицы ГДЕ id МЕЖДУ 79 И 296
Вы также можете создать триггер /, который ловит удаления и помещает их в таблицу истории
, поэтому, если вы удалите что-то по ошибке, вы всегда можете вернуть это
(сохраняйте записи в таблице истории не старше
Если вы напишете это следующим образом на сервере SQL, тогда не будет опасности стирания таблицы базы данных, если только все значения в этой таблице не окажутся между этими значениями:
УДАЛИТЬ ИЗ [dbo]. [TableName], ГДЕ [TableName].[IdField] МЕЖДУ 79 И 296
Меня беспокоит, если я скажу удалить все с идентификатором (> 79 И < 296) то он может буквально стереть всю таблицу...
Этого не произойдет, потому что у вас будет предложение where. Что происходит, так это то, что если у вас есть оператор типа delete * from Table1, где id находится между 70 и 1296
, первое, что сделает процессор запросов sql, это просканирует таблицу и найдет эти записи в этом диапазоне, а затем применит удалить.
Вы можете использовать этот способ, потому что идентификатор не может быть последовательным во всех случаях.
ВЫБЕРИТЕ * ОТ `ht_news` ПРЕДЕЛ 0 , 30
Оператор SQL DELETE - Учебное пособие Республика
Рекламные объявления
В этом руководстве вы узнаете, как удалять записи из таблицы базы данных с помощью SQL.
Удаление данных из таблиц
Точно так же, как вы вставляете записи в таблицу с помощью оператора INSERT
, вы также можете удалять записи из таблицы с помощью УДАЛИТЬ
заявление.
Синтаксис
Оператор DELETE
используется для удаления одной или нескольких строк из таблицы.
УДАЛИТЬ ИЗимя_таблицы
ГДЕусловие
;
Предупреждение: Предложение WHERE
в операторе DELETE
указывает, какую запись или записи следует удалить. Однако это необязательно, но если вы пропустите или забудете условие WHERE
, все записи будут безвозвратно удалены из таблицы.
Давайте удалим некоторые записи из таблицы person , которую мы создали в главе создания таблицы.
Предположим, что наша таблица человек в настоящее время имеет следующие записи:
+----+------+--------------+---------- ---+ | идентификатор | имя | дата_рождения | телефон | +----+------+--------------+---------- ---+ | 1 | Питер Уилсон | 15 июля 1990 г. | 0711-020361 | | 2 | Кэрри Симпсон | 1995-05-01 | 0251-031259 | | 3 | Виктория Эшворт | 1996-10-17 | 0695-346721 | | 4 | Джордж Бейли | 1993-03-05 | 0897-034214 | | 5 | Норман Бейтс | 1999-08-25 | 0522-556721 | +----+------+--------------+---------- ---+
Удалить записи на основе условий
Следующий оператор удалит строки из таблицы лиц , где идентификатор больше 3.