---
title: "PostgreSQL 数据库至 OceanBase 数据库 Oracle 兼容模式的同步 DDL | OceanBase 文档中心"
description: PostgreSQL 数据库至 OceanBase 数据库 Oracle 兼容模式的同步 DDL CREATE TABLE 创建表 支持 IF NOT EXISTS 创建表 CREATE TABLE T (C INT); CREATE TABLE IF NOT EXISTS T (C INT); 创建行内约束 NOT…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*L03BS6f-o40AAAAAAAAAAAAADiGDAQ/original) 迁移服务 OMSV 4.3.1 企业版

# PostgreSQL 数据库至 OceanBase 数据库 Oracle 兼容模式的同步 DDL

更新时间：2026-04-14 15:36:02

## CREATE TABLE

- 创建表

  支持 `IF NOT EXISTS` 创建表

  ```SQL
  CREATE TABLE T (C INT);
  CREATE TABLE IF NOT EXISTS T (C INT);

  ```
 - 创建行内约束

     - NOT NULL
     - NULL
     - CHECK ( expression )
     - DEFAULT default_expr
     - UNIQUE
     - PRIMARY KEY
     - REFERENCES reftable(refcolumn)

  ```SQL
  CREATE TABLE T (C INT NOT NULL);
  CREATE TABLE T (C INT NULL);
  CREATE TABLE T (C INT CHECK(C>0));
  CREATE TABLE T (C INT DEFAULT 1);
  CREATE TABLE T (C INT UNIQUE);
  CREATE TABLE T (C INT PRIMARY KEY);
  CREATE TABLE T (C INT REFERENCES P(PK));

  ```
 - 创建行外约束

     - CHECK ( expression )
     - UNIQUE ( column_name [, ... ] )
     - PRIMARY KEY ( column_name [, ... ] )
     - FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable ( refcolumn [, ... ] )

  ```SQL
  CREATE TABLE T(C INT,CHECK(C>0));
  CREATE TABLE T(C INT,UNIQUE (C));
  CREATE TABLE T(C INT, PRIMARY KEY(C));
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1));

  ```
 - 创建生成列 GENERATED ALWAYS AS ( generation_expr ) STORED

  ```SQL
  CREATE TABLE T(C1 INT, C2 INT GENERATED ALWAYS AS (C1+1) STORED);

  ```
 - 约束支持命名约束 CONSTRAINT constraint_name

  ```SQL
  CREATE TABLE T(C INT CONSTRAINT UK UNIQUE);
  CREATE TABLE T(C INT, CONSTRAINT FK1 FOREIGN KEY(C) REFERENCES P(COL1));

  ```
 - FOREIGN 参数 (ON UPDATE | ON DELETE) (NO ACTION | RESTRICT | CASCADE)

  ```SQL
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1) ON UPDATE NO ACTION);
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1) ON UPDATE RESTRICT);
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1) ON UPDATE CASCADE);
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1) ON DELETE NO ACTION);
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1) ON DELETE RESTRICT);
  CREATE TABLE T(C INT, FOREIGN KEY(C) REFERENCES P(COL1) ON DELETE CASCADE);

  ```

## CREATE INDEX

- 创建普通索引

  ```SQL
  CREATE INDEX ON T(C);
  CREATE INDEX idx1 ON T(C);

  ```
 - 创建唯一索引

  ```SQL
  CREATE UNIQUE INDEX ON T(C);
  CREATE UNIQUE INDEX unindex1 ON T(C);

  ```

## ALTER TABLE

- 修改表字段类型

  ```SQL
  ALTER TABLE T ALTER COLUMN C TYPE CHAR;

  ```
 - 修改表字段名称

  ```SQL
  ALTER TABLE T RENAME COLUMN C TO C2;

  ```
 - 修改字段 default 值

  ```SQL
  ALTER TABLE T ALTER COLUMN C SET DEFAULT 1;
  ALTER TABLE T ALTER COLUMN C DROP DEFAULT;

  ```
 - 修改表名

  ```SQL
  ALTER TABLE T RENAME TO T2;

  ```
 - 新增普通列

  新增列时支持同时定义 NOT NULL/NULL/DEFAULT/CHECK 约束

  ```SQL
  ALTER TABLE t ADD COLUMN c INT NOT NULL DEFAULT 1;
  ALTER TABLE t ADD COLUMN c INT NULL;
  ALTER TABLE t ADD COLUMN c INT CONSTRAINT 'ck' CHECK(C>0);

  ```
 - 新增生成列

  ```SQL
  ALTER TABLE t ADD COLUMN c INT GENERATED ALWAYS AS ( f+1 ) STORED;

  ```
 - 删除列

  ```SQL
  ALTER TABLE T DROP COLUMN C;

  ```
 - 增加主键

  ```SQL
  ALTER TABLE T ADD PRIMARY KEY(C);

  ```

  OceanBase 数据库 Oracle 兼容模式为 V4.0.0 之前版本时

  ```SQL
  ALTER TABLE "T" ADD CONSTRAINT GENE_PRIMARY_CONSTRAINT UNIQUE ("C");

  ```

  OceanBase 数据库 Oracle 兼容模式为 V4.0.0 及之后版本时

  ```SQL
  ALTER TABLE "t" ADD PRIMARY KEY ("c");

  ```
 - 删除索引

  ```SQL
  ALTER TABLE t DROP CONSTRAINT cst

  ```

## DROP TABLE

删除表

```SQL
DROP TABLE T1,T2;

```

## TRUNCATE TABLE

清空表

```SQL
TRUNCATE TABLE T1,T2;

```

## COMMENT

表注释

```SQL
COMMENT ON TABLE T IS 'TEST';

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
