文章

达梦脚本转PG脚本

达梦脚本转PG脚本

1.DDL脚本

1.1.语句转小写

将所有SQL语句全部转换成小写

1.2.去掉所有双引号

去掉所有SQL语句中的双引号。

注意:不能去掉初始数据中自己的双引号了,例如json数据中自己的双引号。

1.3.primary key语句

1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE "UTILITY_SYSTEM_CONFIG"
(
    "ID"            VARCHAR(36)  NOT NULL,
    "NAME"          VARCHAR(100) NOT NULL,
    "VALUE"         VARCHAR(200) NULL,
    "DEFAULT_VALUE" VARCHAR(200) NULL,
    "CREATE_USER"   VARCHAR(36) NULL,
    "CREATE_TIME"   TIMESTAMP(6) NULL,
    "UPDATE_USER"   VARCHAR(36) NULL,
    "UPDATE_TIME"   TIMESTAMP(6) NULL,
    CLUSTER PRIMARY KEY("ID") ENABLE
);

CLUSTER PRIMARY KEY(“ID”) ENABLE要改为primary key (id)

1.4.Clob数据类型

Clob数据类型要改为text类型

1.5.primary key的唯一约束

1
2
ALTER TABLE "SECURITY_USER"
    ADD CONSTRAINT PRIMARY KEY ("ID");

要改为:

1
2
alter table security_user
    add constraint security_user_pkey primary key (id);

1.6.新增字段语句

1
2
ADD COLUMN
ALTER TABLE SECURITY_LOG ADD COLUMN(MODULE VARCHAR(100));

要改为:

1
alter table security_log add column module varchar(100);

1.7.修改字段名称语句

1
2
RENAME
ALTER TABLE SECURITY_LOG ALTER COLUMN TOTAL_MILLIS RENAME TO COST_TIME;

要改为:

1
alter table security_log rename column total_millis to cost_time;

1.8.新增主键语句

1
2
ALTER TABLE "UTILITY_MY_DATASOURCE"
    ADD CONSTRAINT PRIMARY KEY ("ID") ENABLE;

要改为:

1
2
alter table utility_my_datasource
    add constraint utility_my_datasource_pkey primary key (id);

1.9.修改字段类型语句

1
ALTER TABLE "SECURITY_ORGANIZATION_USER_REL" MODIFY "UPDATE_USER" VARCHAR (36) NULL;

要改为:

1
alter table security_organization_user_rel alter column update_user type varchar (36);

如果要去掉null限制:

1
alter table utility_attachment alter column location drop not null;

2.DML脚本

2.1.去掉所有双引号

去掉所有SQL语句中的双引号。

注意:不要去掉初始数据中自己的双引号了,例如json数据中自己的双引号。

2.2.语句转小写

不能全部语句转小写,因为DML中有很多初始数据,数据本身的大小写格式不能改变。只能将表名称,字段名称和SQL关键字转为小写。

1
2
3
4
5
INSERT INTO "SECURITY_APP"("ID", "NAME", "TYPE", "PERMISSION_TYPE", "CODE", "URL", "STATUS", "REMARK", "CREATE_USER",
                           "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "VERSION", "ATTACHMENT", "COMPANY", "DEVELOPER",
                           "DEVELOPER_CONTACT", "ICON", "CONTACT", "PREVIEW", "CONTENT", "SORT", "DEFAULT_FLAG")
VALUES ('8d2d133ba8a51d385b1befa1e7a5ddf8', '后台管理系统', 'admin', 'default', 'adminApp', null, 'active', null, null, null,
        null, null, null, null, null, null, null, null, null, null, null, null, 1);

要改为:

1
2
3
4
5
insert into security_app(id, name, type, permission_type, code, url, status, remark, create_user,
                         create_time, update_user, update_time, version, attachment, company, developer,
                         developer_contact, icon, contact, preview, content, sort, default_flag)
values ('8d2d133ba8a51d385b1befa1e7a5ddf8', '后台管理系统', 'admin', 'default', 'adminApp', null, 'active', null, null, null,
        null, null, null, null, null, null, null, null, null, null, null, null, 1);
本文由作者按照 CC BY 4.0 进行授权