更新时间:2022-06-13 GMT+08:00

表(DB2)

Gauss关键词

关键字作为列名时,必须添加英文引号,例如:"order"。

DB2语法

迁移后语法

CREATE TABLE tbl_bd2 
 ( 
 ORDER NUMBER(10), 
 USER varchar2(30), 
 DATE VARCHAR(10 
 );
CREATE TABLE tbl_bd2 
 ( 
 "ORDER" NUMBER(10), 
 "USER" varchar2(30),  
 "DATE" VARCHAR(10 
 );

数据类型 (一)

“LONG VARCHAR”应修改为“CLOB”。

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID VARCHAR(36), 
 NAME LONG VARCHAR 
 );
CREATE TABLE tbl_db2 
 ( 
 ID VARCHAR(36), 
 NAME CLOB 
 );

LONG VARGRAPHIC。

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID VARCHAR(36), 
 NAME LONG VARGRAPHIC 
 );
CREATE TABLE tbl_db2 
 ( 
 ID VARCHAR(36), 
 NAME CLOB  
 );

外键

对以下外键约束属性进行注释:

  • ON UPDATE RESTRICT
  • ENFORCED
  • ENABLE QUERY OPTIMIZATION

    DB2语法

    迁移后语法

    ALTER TABLE "SCH"."TBL_DB2" 
     ADD CONSTRAINT "Const_Name" FOREIGN KEY("ID") 
     REFRENCES "SCH"."TBL_DB2_1"("ID") 
     ON DELETE CASCADE 
     ON UPDATE RESTRICT 
     ENFORCED 
     ENABLE QUERY OPTIMIZATION;
    ALTER TABLE "SCH"."TBL_DB2" 
     ADD CONSTRAINT "Const_Name" FOREIGN KEY("ID") 
     REFRENCES "SCH"."TBL_DB2_1"("ID") 
     ON DELETE CASCADE 
     /*ON UPDATE RESTRICT 
     ENFORCED 
     ENABLE QUERY OPTIMIZATION*/;

序列

内置自动增量函数。

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (   
       START WITH +1   
       INCREMENT BY +1   
       MINVALUE +1   
       MAXVALUE +9223372036854775807   
       NO CYCLE   
       CACHE 20   
       NO ORDER ) , 
 NAME VARCHAR2(50), 
 ORDER VARCHAR2(100) 
 ); 
 
 
CREATE SEQUENCE mseq_tbl_db2_id 
 START WITH +1 
 INCREMENT BY +1 
 MINVALUE +1 
 MAXVALUE +9223372036854775807 
 NOCYCLE 
 CACHE 20 
 NOORDER; 
 CREATE TABLE tbl_db2 
 ( 
 ID BIGINT NOT NULL DEFAULT mseq_tbl_db2_id.NEXTVAL, 
 NAME VARCHAR2(50), 
 "ORDER" VARCHAR2(100) 
 );

表空间

即将放置表的表空间由IN子句指定。

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID number(20) NOT NULL DEFAULT IDENTITY.NEXTVAL, 
 NAME VARCHAR2(50) 
 ) 
 IN tbs1 ; 
CREATE TABLE tbl_db2 
 ( 
 ID number(20) NOT NULL DEFAULT IDENTITY.NEXTVAL, 
 NAME VARCHAR2(50) 
 ) 
 TABLESPACE tbs1 ; 

缺省值

给“WITH DEFAULT”指定给一个具体的缺省值。

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 STATUS CHAR(1) WITH DEFAULT '0' 
 );
CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 STATUS CHAR(1) DEFAULT '0' 
 );

没有指定值的缺省值。

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 STATUS CHAR(1) WITH DEFAULT 
 );
CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 STATUS CHAR(1)  
 );

数据类型 (二)

CLOB(1048576)

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 REMARKS CLOB(1048576));
CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 REMARKS CLOB 
 );

BLOB(2048000)

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 REMARKS BLOB(2048000) 
 );
CREATE TABLE tbl_db2 
 ( 
 ID number(20) , 
 NAME VARCHAR2(50), 
 REMARKS BLOB 
 );

LOB选项

LOGGED/UNLOGGED

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 "ID" number(20) , 
 "NAME" VARCHAR2(50), 
 "REMARKS" BLOB LOGGED 
 );
CREATE TABLE tbl_db2 
 ( 
 "ID" number(20) , 
 "NAME" VARCHAR2(50), 
 "REMARKS" BLOB /*LOGGED */  
 );

COMPACT/NOT COMPACT

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 "ID" number(20) , 
 "NAME" VARCHAR2(50), 
 "REMARKS" BLOB LOGGED NOT COMPACT 
 );
CREATE TABLE tbl_db2 
 ( 
 "ID" number(20) , 
 "NAME" VARCHAR2(50), 
 "REMARKS" BLOB /*LOGGED */ /* NOT COMPACT*/ 
 );

Organize By子句

Organize By子句

DB2语法

迁移后语法

CREATE TABLE tbl_db2 
 ( 
 "ID" number(20) , 
 "NAME" VARCHAR2(50), 
 "REMARKS" BLOB 
 ) 
 IN tbs1 
 ORGANIZE BY ("ID","NAME");
CREATE TABLE tbl_db2 
 ( 
 "ID" number(20) , 
 "NAME" VARCHAR2(50), 
 "REMARKS" BLOB 
 ) 
 TABLESPACE tbs1 
 /*ORGANIZE BY ("ID","NAME")*/;