更新时间:2024-10-26 GMT+08:00

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;