Инструменты пользователя

Инструменты сайта


delete

DELETE

Версии сервера

Firebird v0.9 Firebird v1.0 Firebird v1.5 Firebird v2.0

Формат

DELETE FROM table [WHERE <search_condition>];

Аргумент Описание
table Имя таблицы из которой удаляются строки.
<search_condition> Условия поиска, которые определяют строки для удаления. Если это предложение не используется, DELETE воздействует на все строки в определенной таблице или представлении.

Описание

DELETE определяет одну или более строк, чтобы удалить из таблицы или редактируемого (updatable) вида. DELETE - одна из привилегий, которые контролируются инструкциями GRANT и REVOKE.

Для определения строк, которые следует удалить, может быть использовано факультативное предложение WHERE.

:!: Если не используется предложение WHERE,будут удалены все строки из таблицы.

Пример

Следующая инструкция удаляет все строки из таблицы:

DELETE FROM EMPLOYEE_PROJECT;

Следующая инструкция удаляет строку для служащего #141:

DELETE FROM SALARY_HISTORY
WHERE EMP_NO = 141;

:!: EMP_NO это PRIMARY KEY для таблицы EMPLOYEE и по этому гарантирует уникальную идентификацию строки.

См. также

Источник

langref.pdf

Обсуждение

Александр Иванов, 2011/03/17 14:11

DELETE «коварный» запрос. Пусть имеется таблица PaySumma в простейшем случае c двумя столбцами: PayFactCD - первичный ключ; AccountCD - внешний ключ. С помощью банального запроса DELETE FROM PaySumma WHERE AccountCD IN (SELECT AccountCD

                                    FROM PaySumma 
                                    GROUP BY 1 HAVING COUNT(PayFactCD) > 3)

не удастся удалить все записи с одинаковыми значениями внешних ключей, число которых в исходной таблице больше заданного значения, например 3.

Александр Иванов, 2011/06/24 15:32

Оказалось, что это баг версии 2.5. В 3.0 исправлен (проверено)

Ваш комментарий. Вики-синтаксис разрешён:
D​ V C M O
 
delete.txt · Последнее изменение: 2011/08/03 13:05 (внешнее изменение)