16.20 - Restrictions on Creating and Using Triggers - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL Data Definition Language Detailed Topics

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
March 2019
Content Type
Programming Reference
Publication ID
B035-1184-162K
Language
English (United States)

The following restrictions apply to the creation and use of triggers:

  • You can define triggers only for persistent base tables.

    You cannot define triggers for any of the following database objects:

    • Error tables
    • Global temporary tables, including global temporary trace tables
    • Views
    • Volatile tables
  • BEFORE statement triggers are not valid.
  • BEFORE triggers cannot have data-changing statements as their triggered action (triggered SQL statements).
  • You cannot define triggers and hash indexes on the same table.
  • You can specify UDT comparisons in the WHEN clause as long as the UDTs have defined orderings.
  • If you reference a NEW_TABLE, OLD_TABLE, or OLD_NEW_TABLE transition table in a WHEN condition, the reference must be made:
    • From a subquery
    • Using correlation names for the referenced transition tables

      The typical subquery used for this purpose is an aggregate that returns a scalar value.

  • Aggregates cannot appear on the left hand side of the search condition specified for a WHEN clause.

    Aggregates can appear on the right hand side of the search condition.

  • Positioned (updatable cursor) update and delete operations cannot fire a trigger. An attempt to do so generates an error.

    You must disable all triggers defined on a subject table prior to positioning cursors for update or delete operations on it.

  • You cannot use an INSERT … SELECT AND CONSUME statement as either of the following:
    • Triggered action statement.
    • Triggering statement.
  • You cannot refer to a recursive view, a WITH clause, or a WITH RECURSIVE clause in the definition of a trigger.