суббота, 18 апреля 2009 г.

Oracle PL/SQL: условные вставки

Условные вставки (conditional inserts) в PL/SQL - это расширенный SQL-оператор INSERT. Он позволяет вставлять записи в базу данных при выполнении какого-то логического условия. Например, вставить элемент в таблицу-справочник, если элемента с таким именем в этой таблице ещё нет:

INSERT

WHEN

NOT EXISTS

(

SELECT NULL FROM items t

WHERE t.name=:name

)

THEN

INTO items (id, name)

VALUES (ID, NAME)

SELECT :id AS ID, :name AS NAME FROM dual;



В упрощённом виде синтаксис этого оператора таков:

INSERT

WHEN ([Condition]) THEN

INTO [TableName] ([ColumnName])

VALUES ([VALUES])

ELSE

INTO [TableName] ([ColumnName])

VALUES ([VALUES])

SELECT [ColumnName] FROM [TableName];

Комментариев нет: