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.
int main()
{
printf("Hi");
return 0;
}
| Это заготовка статьи о программировании. Помогите Википедии, дополнив её. |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |