创建一个具有自动递增字段和引用完整性约束的 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?
如果有人能解答我的问题,我将不胜感激。谢谢
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
总的来说:
- 您可以在活动会话中有 1000 个易失性 table。
- 不允许使用 CHECK 和 REFERENTIAL 约束。
- 不允许使用 DEFAULT 子句。
作为初级 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?
如果有人能解答我的问题,我将不胜感激。谢谢
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
总的来说:
- 您可以在活动会话中有 1000 个易失性 table。
- 不允许使用 CHECK 和 REFERENTIAL 约束。
- 不允许使用 DEFAULT 子句。