UPDATE操作では、次のいずれかの状態が発生すると、エラー メッセージが返されます。
- 基本のテーブルの列に指定された制約(UNIQUEまたは参照など)に違反する値でフィールドを更新する操作。
- 列に指定された数値型とは異なり、しかも正しい値に変換できない値でフィールドを更新する操作。
- 重複行が許可されないテーブルで、VARCHAR列を変更する行が別の行と同一になる(末尾の埋め込み文字の数を除く)場合。
- CHARACTER列を、宛先の文字のデータ型のレパートリーにはない値で更新する場合。
- ANSIセッション モードで、文字データの更新を行なう場合に、宛先列の最大長に合わせるためにブランク以外の文字がソース データから切り捨てられる場合。この更新は、Teradataセッション モードでは有効です。
- 重複行が許可されないテーブルで、既存の行と重複する行を作成することになる値で行を更新する操作。
- 複数のデータベースに存在するオブジェクトを参照する操作で、完全修飾名を使用しない場合。複数のデータベースに同じ名前のテーブルやビューが存在している場合に、完全修飾名を使わずにそれらのオブジェクトを参照すると、名前解決の問題が発生します。このような名前解決の問題は、同じ名前のオブジェクト群自体を参照していない場合でも発生することがあります。
- JSONエンティティの参照は、SET句のターゲット部分で使用された場合。