添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在系统重构中,需要把Mysql的表结构转成pgsql,明显的是,这两个数据库的函数、标识符等都不一样,
这里记录下如何快速将Mysql建表语句转成pgsql语句

工具Navicat Premium(可支持多种数据库连接的数据库客户端)

这里附上Navicate Premium的安装链接

navicate网盘链接

点击上面链接,即可进入分享目录、下载,正确安装后,可使用数据库工具

安装完成后,连接原Mysql库,这里以我本地mysql-nacos为例,详细操作如下图示

工作的时候遇到这么个问题,就是在我自主研发的TongYao2.0框架上,需要用到pgsql数据库,本身TongYao2.0框架针对 mysql 数据开发的,所以需要 换一下数据库。 换用到的 navicat 15版本点击下面tools – datatransfer 选择开始数据库到目标数据库 点击底下 options 按钮可以选择对目标库的一些配置 选择全部 结构 点击start开始即可 正在导入日志输出 到此就完成了。...
1.首先加一下依赖 <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>1.2</version> </dependency> 2.加下脚本 .replaceAll("`", “”") //.replaceAll(“bigint (19)”,“int8”) .replaceAll(“BIGINT UNIQUE NOT NULL AUTO_INCREMENT”, “BIGSERIAL PRIMARY KEY”) .replaceAll(“BIGINT NULL AUTO_INCREMENT”, “BIGSERIAL PRIMARY KEY”) .replaceAll(“BIGINT
使用 mysql dump dump出PG兼容的 MySQL 表语 句(修改下面语句中的databasename和dumpfile.sql),此处dump语句很重要,一定要 为PG兼容的 表语 句: mysql dump --opt --compatible= postgresql --default-character-set=utf8 -d databasename -r dumpfile.s... CREATE TABLE `students` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `age` INT(11) NOT NULL, `gender` ENUM('male','female') NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 换成 PostgreSQL 表语 法: CREATE TABLE students ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(10) NOT NULL CHECK (gender IN ('male', 'female')), created_at TIMESTAMP NOT NULL DEFAULT now() 需要注意的是, PostgreSQL 没有 ENUM 类型,可以使用 VARCHAR 类型代替,并使用 CHECK 约束来限制值的范围。另外, PostgreSQL 中 SERIAL 类型可以自动递增,类似于 MySQL 中的 AUTO_INCREMENT。