ВУЗ:
Составители:
Рубрика:
Синтаксис оператора DELETE
DELETE [LOW_PRIORITY | QUICK] FROM table_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT rows]
или
DELETE [LOW_PRIORITY | QUICK] table_name[.*]
[,table_name[.*] ...]
FROM table-references
[WHERE where_definition]
или
DELETE [LOW_PRIORITY | QUICK]
FROM table_name[.*], [table_name[.*] ...]
USING table-references
[WHERE where_definition]
Оператор DELETE удаляет из таблицы table_name строки,
удовлетворяющие заданным в where_definition условиям, и возвращает
число удаленных записей.
Если оператор DELETE запускается без определения WHERE, то
удаляются все строки. При работе в режиме AUTOCOMMIT это будет
аналогично использованию оператора TRUNCATE. В MySQL 3.23 оператор
DELETE без определения WHERE возвратит ноль как число удаленных
записей.
Если действительно необходимо знать число удаленных записей при
удалении всех строк и если допустимы потери в скорости, то можно
использовать команду DELETE в следующей форме:
mysql> DELETE FROM table_name WHERE 1>0;
Следует учитывать, что эта форма работает намного медленнее, чем
DELETE FROM table_name без выражения WHERE, поскольку строки
удаляются поочередно по одной.
Если указано ключевое слово LOW_PRIORITY, выполнение данной
команды DELETE будет задержано до тех пор, пока другие клиенты не
завершат чтение этой таблицы.
Если задан параметр QUICK, то обработчик таблицы при выполнении
удаления не будет объединять индексы - в некоторых случаях это может
ускорить данную операцию.
Символы .* после имен таблиц требуются только для совместимости с
Access:
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND
t2.id=t3.id
или
93
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »
