作为一名初级SQA,我对Teradata中的表没有读/写访问权限 - 只能对视图进行读取访问。我最近发现了挥发性的桌子,它们让我的生活变得如此简单。虽然它们非常有用,但我想知道是否可以使用自动递增的主键(或索引)创建易失性表,以及参照完整性约束?
以下是我一直在使用的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?
如果有人能够解释我的问题,我会非常感激。感谢。
答案 0 :(得分:2)
非法使用标识列user_id:标识列在临时表或易失性表中定义。有可能 只能在永久表中定义。
但是,还有其他方法可以在Teradata的易失性表中生成代理键,但仅限于在表中插入数据时,而不是在创建表时: http://forums.teradata.com/forum/database/generate-surrogatekey-with-a-huge-table
一般来说: