如何在 Teradata 中创建易失性表?
易失性表与简单表相同,但有一点不同,即它们本质上是易失性的。
和简单的表一样,易失表也是由用户形成的,只有在用户登录后才能使用。一旦用户注销或断开连接,Teradata 管理器会自动从会话中删除该表。
Teradata 管理器删除表后,插入易失性表中的数据和定义将被自动删除。
如何使用易失性表?
假设您是 Teradata 数据库的用户,您必须在同一个数据库中形成几个表。第一个选项是您必须在同一个数据库中创建简单的表并在使用后删除它们。
第二个选项是您可以创建易失性表,其数据和定义在您从数据库注销后由 Teradata 数据库自动删除,这将是更智能的方式。
对于 volatile 表语法,我们将遵循以下语法。
句法:
CREATE [SET | MULTISET] VOLATILE TABLE TABEL_NAME
(
COLUMN1 DATATYPE;
COLUMN2 DATATYPE;
.
.
.
COLUMN_N datatype)
ON COMMIT [DELETE|PRESERVE] ROWS;
例子:
以下示例将创建一个名为“geek”的易失性表。
CREATE VOLATILE TABLE GEEK
(
ROLLNO INT,
FIRST_NAME VARCHAR(15),
LAST_NAME VARCHAR(15)
)
PRIMARY INDEX (ROLLNO)
ON COMMIT PRESERVE ROWS;
在这里,您可以清楚地看到最后一行写为 ON COMMIT PRESERVE ROWS 这行将在您插入后保留数据。
默认值为 ON COMMIT DELETE ROWS。
易失表中的数据插入:
让我们在 volatile 表中插入一些数据。
INSERT INTO GEEK VALUES (1,'Aman','Goyal');
INSERT INTO GEEK VALUES (2,'Pritam','Soni');
INSERT INTO GEEK VALUES (3,'Swati','Jain');
从易失表中选择数据:
我们将在 volatile 表中运行 select 语句。
SELECT * FROM GEEK ORDER BY ROLLNO;
输出:
最后,如果我们断开当前会话并重新登录后,再次运行相同的select语句,我们会发现数据库中不再存在表student。
重新登录后的输出:
SELECT * FROM GEEK ORDER BY ROLLNO;
*** Failure 3807 Object 'GEEK' does not exist.
Statement# 1, Info =0
*** Total elapsed time was 1 second