例: WHEN句でのSUBQUERYの無効な使用 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

以下のWHEN句は無効です。検索条件のsubqueryが複数の値を返すので、TRUEまたはFALSEと評価できないからです。

     CREATE TRIGGER trigwhen4
       AFTER INSERT ON t1
       REFERENCING NEW AS NewRow
     FOR EACH ROW
       WHEN (t2.a > (
         SELECT b 
         FROM t2 
         WHERE t2.c < 5))
     ABORT;

複数の値をt1に挿入する場合、SELECTリクエストは"unknown"の応答を返します。WHEN条件はこれを評価できないので、トランザクションは失敗します。

     *** Failure 3669 More than one value was returned by a subquery.