ВУЗ:
Составители:
Рубрика:
Синтаксис оператора 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
или
DELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id
AND t2.id=t3.id
В предыдущем случае просто удалены совпадающие строки из таблиц t1 и t2.
Выражение ORDER BY и использование нескольких таблиц в команде DELETE
поддерживается в MySQL 4.0.
Если применяется выражение ORDER BY, то строки будут удалены в указанном
порядке. В действительности это выражение полезно только в сочетании с LIMIT. Напри-
мер:
DELETE FROM somelog
WHERE user = 'jcole'
74
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »