Delete (SQL)

Поделись знанием:
Перейти к: навигация, поиск

DELETE — в языках, подобных SQL, DML-операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением where. В случае, если критерий отбора не определён, выполняется удаление всех записей.

  • В СУБД, поддерживающих триггеры, операция Delete может вызывать их срабатывание;
  • При наличии на таблице внешних ключей все дочерние к удаляемым записи в подчинённых таблицах также должны быть удалены для обеспечения ссылочной целостности;
  • В СУБД, поддерживающих транзакции, выполнение операции Delete должно быть подтверждено (COMMIT), либо опровергнуто (ROLLBACK) вызовом соответствующих операций.


Синтаксис

Общий синтаксис команды:

DELETE FROM <Имя Таблицы> WHERE <Условие отбора записей>

Последствием выполнения такой команды будет удаление тех строк из таблицы <Имя Таблицы>, которые соответствуют условию <Условие отбора записей>. При этом никакого результата команда не возвращает и, следовательно, не может быть использована в качестве параметра в команде SELECT.

Удаление записей из нескольких таблиц

К:Википедия:Статьи без источников (тип: не указан)

Чтобы сделать удаление в разных таблицах, для внешних ключей следует задать каскадное удаление и обновление. Такой вариант работать не будет:

DELETE <Имя записи для удаления>
    -> FROM <Имя Таблицы1> JOIN <Имя Таблицы2> ON <условие объединения>;

А такой, возможно, сработает:

DELETE ab, b
  FROM Authors AS a, AuthorArticle AS ab, Articles AS b
  WHERE a.AuthID=ab.AuthID AND ab.ArticleID=b.ArticleID
    AND AuthorLastName='Henry';

Связанные команды

Удаление всех записей из таблицы при наличии внешних ключей и механизме транзакций может занять продолжительное время. Для полной очистки таблицы может быть использована операция TRUNCATE.


Напишите отзыв о статье "Delete (SQL)"

Отрывок, характеризующий Delete (SQL)

– Куда головой лежит? – спросил Николай, подъезжая шагов на сто к подозрившему охотнику. Но не успел еще охотник отвечать, как русак, чуя мороз к завтрашнему утру, не вылежал и вскочил. Стая гончих на смычках, с ревом, понеслась под гору за зайцем; со всех сторон борзые, не бывшие на сворах, бросились на гончих и к зайцу. Все эти медленно двигавшиеся охотники выжлятники с криком: стой! сбивая собак, борзятники с криком: ату! направляя собак – поскакали по полю. Спокойный Илагин, Николай, Наташа и дядюшка летели, сами не зная как и куда, видя только собак и зайца, и боясь только потерять хоть на мгновение из вида ход травли. Заяц попался матёрый и резвый. Вскочив, он не тотчас же поскакал, а повел ушами, прислушиваясь к крику и топоту, раздавшемуся вдруг со всех сторон. Он прыгнул раз десять не быстро, подпуская к себе собак, и наконец, выбрав направление и поняв опасность, приложил уши и понесся во все ноги. Он лежал на жнивьях, но впереди были зеленя, по которым было топко. Две собаки подозрившего охотника, бывшие ближе всех, первые воззрились и заложились за зайцем; но еще далеко не подвинулись к нему, как из за них вылетела Илагинская краснопегая Ерза, приблизилась на собаку расстояния, с страшной быстротой наддала, нацелившись на хвост зайца и думая, что она схватила его, покатилась кубарем. Заяц выгнул спину и наддал еще шибче. Из за Ерзы вынеслась широкозадая, чернопегая Милка и быстро стала спеть к зайцу.
– Милушка! матушка! – послышался торжествующий крик Николая. Казалось, сейчас ударит Милка и подхватит зайца, но она догнала и пронеслась. Русак отсел. Опять насела красавица Ерза и над самым хвостом русака повисла, как будто примеряясь как бы не ошибиться теперь, схватить за заднюю ляжку.
– Ерзанька! сестрица! – послышался плачущий, не свой голос Илагина. Ерза не вняла его мольбам. В тот самый момент, как надо было ждать, что она схватит русака, он вихнул и выкатил на рубеж между зеленями и жнивьем. Опять Ерза и Милка, как дышловая пара, выровнялись и стали спеть к зайцу; на рубеже русаку было легче, собаки не так быстро приближались к нему.