Команда DELETE - SQL

Помечает записи на удаление.

Синтаксис:

DELETE FROM [DatabaseName!]TableName
	[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]

Параметры:
FROM [DatabaseName!]TableName
Задает таблицу, в которой записи помечаются на удаление.
Аргумент DatabaseName! задает имя содержащей таблицу базы данных, отличной от текущей. Это имя необходимо задавать, когда база данных, содержащая таблицу, не является текущей. Между именем базы данных и именем таблицы нужно поставить разделитель восклицательный знак (!).
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
Указывает, что Visual FoxPro помечает на удаление только определенные записи.
Условие FilterCondition устанавливает критерий, которому должны удовлетворять записи, помечаемые на удаление. Можно задать сколько угодно условий фильтрования, объединяя их с помощью операторов И и ИЛИ. Можно также пользоваться оператором НЕ, инвертирующим значение логического выражения, и функцией EMPTY( ), проверяющей, является ли поле пустым.

Комментарии:
Записи, помечаемые на удаление, физически не удаляются из таблицы до тех пор, пока не будет выдана команда PACK. Записи, помеченные на удаление, можно возвратить (снять пометку на удаление) командой RECALL.
Если установка SET DELETED имеет значение ON, записи, помеченные на удаление, игнорируются всеми командами, использующими опцию диапазона.
В отличие от DELETE, DELETE - SQL использует блокировку записей при маркировке нескольких записей для удаления в таблицах, открытых для совместного доступа. Это уменьшает вероятность конфликта в многопользовательской среде, но также может уменьшить производительность. Для достижения максимальной производительности откройте таблицу для эксклюзивного использования или воспользуйтесь FLOCK( ) для блокировки таблицы.

Пример:

* В следующем примере открывается таблица customer в базе данных
* testdata. Команда DELETE - SQL помечает на удаление все записи, в
* которых поле country содержит значение USA. Все записи, помеченные
* для удаления, выводятся на экран. Команда RECALL ALL используется
* для снятия маркировки со всех записей, помеченных на удаление.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Opens Customer table

DELETE FROM customer WHERE country = 'USA'  && Mark for deletion
CLEAR
LIST FIELDS company, country FOR DELETED( ) && List marked records
RECALL ALL  && Unmark all records marked for deletion

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 01.01.2003