一、字段转化对照表

源MYSQL字段类型 加载目标库PG字段类型 是否支持
int integer
tinyint integer
smallint integer
mediumint integer
bigint bigint
float real
declmal(m,d)或numeric(m,d) numeric
double或real double precision
char character
varchar character varying
tinytext text
text text
mediumtext text
longtext text
date date
time time with out time zone
datetime timestamp without time zone
timestamp timestamp without time zone
year integer
tinyblob bytea
blob bytea
mediumblob bytea
longblob bytea
bit bytea
binary bytea
enum integer
set integer

二、DDL语句支持列表

语句类型 语句概要 SQL MYSQL-PG是否支持
创建表 建表带索引及外键 create table mysql_tab6(test_1 int primary key comment 'this is a test tab',test_ind bigint,test_3 tinyint,index ind_test_ind(test_ind),constraint fk_tab6_test_3 foreign key(test_3) references mysql_tab1(test_2)); 是,不建外键约束
数值型 create table mysql_tab1(test_1 int primary key,test_2 tinyint,test_3 smallint default 10 not null,test_4 mediumint,test_5 bigint,test_6 float,test_7 decimal(38,10),test_8 double,unique key(test_2));
字符型 create table mysql_tab2(test_1 int primary key,test_2 char(255),test_3 varchar(2000),test_4 tinytext,test_5 text,test_6 mediumtext,test_7 longtext);
日期型 create table mysql_tab3(test_1 int primary key,test_2 date,test_3 time,test_4 datetime,test_5 timestamp,test_6 year);
lob及二进制 create table mysql_tab4(test_1 int primary key,test_2 blob,test_3 tinyblob,test_4 mediumblob,test_5 longblob,test_6 binary,test_7 varbinary(10));
表名大写+不常用类型 create table MYSQL_TAB5(Test_1 int primary key,Test_2 enum('a','b'),Test_3 set('a1','b1','c1'));
添加列 特殊字段 alter table mysql_tab4 add test_7 bit;
特殊字段 alter table mysql_tab6 add test_2 longblob;
含字段长度 alter table mysql_tab6 add test_11 varchar(200);
特殊字段+字段长度 alter table mysql_tab6 add test_4 varbinary(10);
设为null alter table mysql_tab6 add test_5 tinyint null;
设为not null alter table mysql_tab6 add test_6 smallint not null;
not null + default alter table mysql_tab6 add test_7 bigint not null default 10;
default alter table mysql_tab6 add test_8 char(255) default 'asd1';
添加多列 alter table mysql_tab6 add (test_9 varchar(4000),test_10 tinytext);
修改列属性 含字段长度 alter table mysql_tab6 modify test_3 varchar(1000);
设为null alter table mysql_tab6 modify test_4 varbinary(11) null;
defalut alter table mysql_tab6 modify test_5 mediumint default 100;
not null + default alter table mysql_tab6 modify test_6 bigint not null default 101;
更改列名+属性 alter table mysql_tab6 change test_10 test_12 text;
更改列名+ default alter table mysql_tab6 change test_9 test_13 varchar(300) default '10011' not null;
defalut alter table mysql_tab6 alter test_11 set default 'asb123';
删除default alter table mysql_tab6 alter test_7 drop default;
重命名表 更改表名 alter table mysql_tab5 rename to mysql_tab7;
添加、删除索引 创建普通索引 create index ind_test_6 on mysql_tab6(test_6);
创建普通索引 alter table mysql_tab6 add index ind_test_5(test_5);
删除普通索引 drop index ind_test_ind on mysql_tab6;
删除普通索引 alter table mysql_tab6 drop index ind_test_6;
删除普通索引 alter table mysql_tab6 drop index ind_test_5;
创建唯一索引 alter table mysql_tab6 add unique index uk_ind_test_ind(test_ind);
删除唯一索引 alter table mysql_tab6 drop index uk_ind_test_ind;
删除主键 alter table mysql_tab6 drop primary key;
添加主键 alter table mysql_tab6 add primary key(test_1);
添加注释 列注释 alter table mysql_tab6 modify test_7 bigint comment 'this is a int filed';
表注释 alter table mysql_tab6 comment 'this is a test mysql table';
删除列 删除列 alter table mysql_tab6 drop column test_12;
表名、列名大小写 列名大写 alter table MYSQL_TAB5 add TEST_4 INT first,add Test_5 tinyint not null default 2 after `Test_1`,add (test_6 varchar(20),test_7 double);
含字段度 ALTER TABLE MYSQL_TAB5 MODIFY Test_2 varchar(20);
default alter table MYSQL_TAB5 change Test_3 test_5 set('a1','b1','c1') default 'a1';
删除default alter table MYSQL_TAB5 alter Test_5 drop default;
创建索引 create index ind_tab5 on MYSQL_TAB5(TEST_4);
删除索引 ALTER TABLE MYSQL_TAB5 DROP INDEX ind_tab5;
列注释 alter table MYSQL_TAB5 MODIFY TEST_4 INT comment 'this is a test_4';
表注释 alter table MYSQL_TAB5 comment 'THIS IS A TEST TAB5';
文档更新时间: 2021-11-11 21:25   作者:操李红