创建一个具有自动递增字段和引用完整性约束的 volatile table

Creating a volatile table with an automatically incremented field and referential integrity constraints

作为初级 SQA,我没有 write/read 访问 Teradata 中的 table 的权限 - 只有视图的读取权限。我最近发现了 volatile tables,它们让我的生活变得轻松多了。虽然它们非常有用,但我想知道是否可以创建一个具有自动递增主键(或索引)以及参照完整性约束的易失性 table?

这是我一直在使用的 SQL。

CREATE VOLATILE TABLE Article (
    user_id INTEGER GENERATED BY DEFAULT AS IDENTITY
    (
        START WITH 1
        INCREMENT BY 20
        MAXVALUE 2147483647
    )
    ,user_url varchar(1000) NOT NULL
    ,user_title varchar(200)
    --,PRIMARY KEY (art_id)
) ON COMMIT PRESERVE ROWS;

我收到此代码的错误消息:

CREATE TABLE Failed. 5784: Illegal usage of Identity Column user_id

如您所见,我正在尝试创建一个自动递增的字段,但尚未尝试实施任何参照完整性约束。

总而言之,我的问题是:

1. Can a field of a volatile table be automatically incremented and, if
   possible, how is this accomplished?
2. Can referential integrity constraints be included in creating a volatile 
   table and, if possible, how is this accomplished?

如果有人能解答我的问题,我将不胜感激。谢谢

据此: http://www.info.teradata.com/HTMLPubs/DB_TTU_14_00/index.html#page/General_Reference/B035_1096_111A/Database.26.1905.html

Illegal usage of Identity Column user_id: An identity column is defined in a temporary or volatile table. It may only be defined in a permanent table.

但是,还有其他方法可以在 Teradata 的易失性 table 中生成代理键,但仅限于在您的 table 中插入数据时,而不是在创建时: http://forums.teradata.com/forum/database/generate-surrogatekey-with-a-huge-table

总的来说:

  1. 您可以在活动会话中有 1000 个易失性 table。
  2. 不允许使用 CHECK 和 REFERENTIAL 约束。
  3. 不允许使用 DEFAULT 子句。