【MySQL建表语句转PostgreSQL建表语句】MySQL建表语句转PostgreSQL建表语句 接上一篇
String createSQL = ct.toString()
.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 NOT NULL AUTO_INCREMENT”, “BIGSERIAL PRIMARY KEY”)
.replaceAll(“INT NOT NULL AUTO_INCREMENT”, “BIGSERIAL PRIMARY KEY”)
.replaceAll(“INT NULL AUTO_INCREMENT”, “BIGSERIAL PRIMARY KEY”)
//.replaceAll(“int8 NOT NULL AUTO_INCREMENT”, “BIGSERIAL PRIMARY KEY”)
.replaceAll(“IF NOT EXISTS”, “”)
.replaceAll(“TINYINT”, “SMALLINT”)
.replaceAll(“DATETIME”, “TIMESTAMP”)
.replaceAll(", PRIMARY KEY \(“id”\)", “”);
// 如果存在表注释if (createSQL.contains("COMMENT")) {String substring = createSQL.substring(createSQL.indexOf("= '")+2);String commentSql = genCommentSql(table.toString(), substring);comments.add(commentSql);createSQL = createSQL.substring(0, createSQL.indexOf("COMMENT"));createSQL = createSQL.substring(0, createSQL.indexOf("ENGINE"));}System.out.println(createSQL + ";");comments.forEach(t -> System.out.println(t.replaceAll("`", "\"") + ";"));});
}
/**
* 获得注释的下标
*
* @param columnSpecStrings columnSpecStrings
* @return 下标
*/
private static int getCommentIndex(List columnSpecStrings) {
for (int i = 0; i < columnSpecStrings.size(); i++) {
if (“COMMENT”.equalsIgnoreCase(columnSpecStrings.get(i))) {
return i;
}
}
return -1;
}
/*** 生成COMMENT语句** @param table 表名* @param column 字段名* @param commentValue 描述文字* @return COMMENT语句*/
private static String genCommentSql(String table, String column, String commentValue) {return String.format("COMMENT ON COLUMN %s.%s IS %s", table, column, commentValue);
}/*** 生成COMMENT语句** @param table 表名* @param commentValue 描述文字* @return COMMENT语句*/
private static String genCommentSql(String table, String commentValue) {return String.format("COMMENT ON TABLE %s IS %s", table, commentValue);
}
}
【MySQL建表语句转PostgreSQL建表语句】MySQL建表语句转PostgreSQL建表语句 接上一篇相关推荐
- 自动获取mysql建表语句_脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明...
常规建表语句: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `name` char(64) NOT NULL, `password` char ...
- pymysql建表_Python数据库操作,针对pymysql 和 MYSQL数据库
此文将以MYSQL数据库做为例子,pymysql库作为驱动进行学习 安装MYSQL数据库与pymysql第三方库 安装pymysql库不多做叙述 安装navicat for mysql,此程序用来管理 ...
- 下载好了mysql 如何在命令行测试_MAC上安装MySQL,测试是否安装好了,在命令窗中作建表、查询等基本操作。-Go语言中文社区...
一.下载MySQL 在官方网站上下载MySQL 二.安装MySQL 下载好安装包后根据提示进行安装,需要注意的是会提示安装成功以及初始密码,初始密码后续会用到. 三.运行MySQL 打开[系统偏好设置 ...
- mysql导出建库语句_mysql 导出成sql,再次导入,发现没有自动建库语句是怎么回事?...
mysqldump 有很多 选项使用的. 你想要带创建数据库的 语句的话 这样写 mysqldump -u 帐号 -p -B 数据库名 > 导出文件名 这里的 -B 就是 要带创建数据库的语句. ...
- mysql 系统表 存储过程_数据库系统(六)---MySQL语句及存储过程
1.存储过程是一组为了完成某项特定功能的 SQL 语句集,其实质上就是一段存储在数据库中的代码,它可以由声明式的 SQL 语句(如 CREATE.UPDATE 和SELECT 等语句)和过程式 SQL ...
- mysql外键约束语句级连_mysql之外键约束(级联操作等) 父表子表
不理解的地方标注问号. 网上不同的博客讲的,之间似乎有些矛盾,求推荐好书. 写得不好请指出错误. 父表和子表 当两个表建立一对多关系的时候,"一"的那一端是父表,"多&q ...
- mysql数据库从删库到跑路之mysql多表查询
一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 company.employee company.department #建表 create table department( i ...
- mysql生产环境加索引_【生产篇】_MySQL环境下如何查看基于表的索引定义
[引言] 今天中午项目组来一需求,欲在MySQL环境的某张表下创建几个BTREE索引.要创建索引,首先需要了解基表的表结构,以及已经包含的索引.Oracle的表结构大家都很熟悉,但MySQL表结构和已 ...
- hive导数据到mysql 自增主键出错_面试官:MySQL表设计要注意什么?
本文公众号来源:孤独烟 作者:孤独烟 引言 这篇文章的很多问题,都是面试中实打实会问到的! 比如 OK,具体有下面这些问题 1.为什么一定要设一个主键? 2.你们主键是用自增还是UUID? 3.主键为 ...
- mysql 前沿表设计_史上最简单MySQL教程详解(基础篇)之表的维护和改造
表结构修改 在我们实际的开发的过程,随着开发的深入,会发现我们事先设计好的表可能已经不再适合,就会设计到对表的修改和改造.这里我就向大家介绍一下一些常用的方法和情况.这里我们使用的是之前在中就已经使用 ...
最新文章
- 独家 | 教你用Scrapy建立你自己的数据集(附视频)
- 表格行与列边框样式处理的原理分析及实战应用
- CFileFind 遍历目录与子目录
- 实例15:python
- Exception in thread main java.lang.NoClassDefFoundError解决了
- 远程连接hive报错
- .NET Framework发展史
- 图书管理系统 ——mysql数据库
- python发微信图片_Python实现的微信公众号群发图片与文本消息功能实例详解
- 如何快速将显示未签收的单号物流归类为签收件
- 为什么很少有单片机机构?培训班一般多少费用?
- k8s实战入门——Service
- 谷歌浏览器后提示Adobe Flash Player因过期而遭到阻止
- Linux安装redis并设置开机自启以及利用小红桶连接(命令行方式)
- FPGA控制W5500完成UDP环回测试
- 110配线架打法图解_配线架打线的方法以及110配线架的按照流程
- v4l2 use V4L2_MEMORY_MMAP方式导出为 DMA BUF fd 方式使用
- CSS制作类似浏览器标题栏的圆角样式
- div css每行文字显示一半 同时文字字体重叠显示不全解决方法
- 诺基亚的驱动力:研发与产业族群