CREATE TABLE
Teradata的CREATE TABLE (缩写关键字为CT)语句用于创建表。
示例:
输入:CREATE TABLE
1 2 3 |
CT tab1 ( id INT ); |
输出:
1 2 3 4 5 6 |
CREATE TABLE tab1 ( id INTEGER ) ; |
执行CREATE tab2 AS tab1时,从tab1中复制的结构将用于创建表tab2。如果CREATE TABLE语句包含WITH DATA选项,则会将tab1的数据也复制到tab2中。使用CREATE AS时,源表中的CONSTRAINT行将保留在新表中。
- 如果session_mode设为Teradata,则必须删除目标表中的重复记录。该操作通过在迁移脚本中添加MINUS运算符实现。
- 如果session_mode设为ANSI,则允许目标表中存在重复记录。
如果源表具有PRIMARY KEY(主键)或UNIQUE CONSTRAINT(唯一约束),则该表不包含任何重复记录。在这种情况下,不需要添加MINUS操作符删除重复的记录。
示例:
输入:CREATE TABLE AS WITH DATA(session_mode=Teradata)
1 2 |
CREATE TABLE tab2 AS tab1 WITH DATA; |
输出:
1 2 3 4 5 6 7 8 9 10 11 |
BEGIN CREATE TABLE tab2 ( LIKE tab1 INCLUDING ALL EXCLUDING PARTITION EXCLUDING RELOPTIONS ); INSERT INTO tab2 SELECT * FROM tab1 MINUS SELECT * FROM tab2; END ; / |
输入:CREATE TABLE AS WITH DATA AND STATISTICS
1 2 3 4 |
CREATE SET VOLATILE TABLE tab2025 AS ( SELECT * from tab2023 ) WITH DATA AND STATISTICS PRIMARY INDEX (LOGTYPE, OPERSEQ); |
输出:
1 2 3 4 5 |
CREATE LOCAL TEMPORARY TABLE tab2025 DISTRIBUTE BY HASH ( LOGTYPE, OPERSEQ ) AS ( SELECT * FROM tab2023 ); ANALYZE tab2025; |