日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【MySQL建表语句转PostgreSQL建表语句】MySQL建表语句转PostgreSQL建表语句

發布時間:2023/12/10 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MySQL建表语句转PostgreSQL建表语句】MySQL建表语句转PostgreSQL建表语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.首先加一下依賴
<dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>1.2</version> </dependency>
2.加下腳本
/**

  • @author Ben.Zhou

  • @version 1.0

  • @description

  • @data 2022/3/10 16:51
    */
    public class MysqlDdl2PgDdlUtil {
    public static void main(String[] args) throws IOException, JSQLParserException {
    // 你的MySQL DDL路徑
    String mysqlDDLPath = “C:\Users\wb_xg20\Desktop\finance_super1.sql”;
    String dDLs = FileUtils.readFileToString(new File(mysqlDDLPath));

    System.out.println(dDLs);dDLs = dDLs.replaceAll("current_timestamp\\(\\) ON UPDATE current_timestamp\\(\\)", "current_timestamp").replaceAll("current_timestamp\\(\\)", "current_timestamp").replaceAll("current_timestamp\\(\\)", "current_timestamp").replaceAll("int\\([0-9]*\\)", "INT").replaceAll("tinyint\\([0-9]*\\)", "INT").replaceAll("tinyINT","INT").replaceAll("double\\([0-9]*,[0-9]*\\)","float8").replaceAll("DEFAULT 00000000000","DEFAULT 0").replaceAll("unsigned zerofill","").replaceAll("bigint\\([0-9]*\\) NOT NULL AUTO_INCREMENT", "BIGSERIAL PRIMARY KEY").replaceAll("bigint\\([0-9]*\\)","INT8");//dDLs = dDLs.replaceAll("bigint\\(19\\)","int8");System.out.println("++++++++++開始轉換SQL語句+++++++++++++");Statements statements = CCJSqlParserUtil.parseStatements(dDLs);statements.getStatements().stream().map(statement -> (CreateTable) statement).forEach(ct -> {Table table = ct.getTable();List<ColumnDefinition> columnDefinitions = ct.getColumnDefinitions();List<String> comments = new ArrayList<>();List<ColumnDefinition> collect = columnDefinitions.stream().peek(columnDefinition -> {List<String> columnSpecStrings = columnDefinition.getColumnSpecStrings();int commentIndex = getCommentIndex(columnSpecStrings);if (commentIndex != -1) {int commentStringIndex = commentIndex + 1;String commentString = columnSpecStrings.get(commentStringIndex);String commentSql = genCommentSql(table.toString(), columnDefinition.getColumnName(), commentString);comments.add(commentSql);columnSpecStrings.remove(commentStringIndex);columnSpecStrings.remove(commentIndex);}columnDefinition.setColumnSpecStrings(columnSpecStrings);}).collect(Collectors.toList());ct.setColumnDefinitions(collect);

總結

以上是生活随笔為你收集整理的【MySQL建表语句转PostgreSQL建表语句】MySQL建表语句转PostgreSQL建表语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。