如何快速生成MySQL数据库关系图
package com.example.demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class MysqlERGenerate {
public static void main(String[] args) throws IOException {
StringBuilder builder = new StringBuilder();
InputStream is = Files.newInputStream(Paths.get("C:\Users\admin\Desktop\ddl.sql"));
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
line = reader.readLine();
while (line != null) {
builder.append(line);
builder.append("
");
line = reader.readLine();
}
reader.close();
is.close();
String sql = builder.toString();
String[] split = sql.split("CREATE TABLE");
List<String> list = new ArrayList<>(Arrays.asList(split));
list.remove(0);
Map<String, String> collect = list.stream().collect(Collectors.toMap(k -> {
int firstIndex = k.indexOf("`");
return k.substring(++firstIndex, k.indexOf("`", firstIndex));
}, v -> v));
Map<String, String> foreignKey = new HashMap<>();
foreignKey.put("ticket_no", "ticket");
foreignKey.put("ticket_define_no", "ticket_define");
foreignKey.put("pro_no", "pro_main");
Set<String> foreignKeyFields = foreignKey.keySet();
for (String mainTableName : collect.keySet()) {
String val = collect.get(mainTableName);
for (String field : foreignKeyFields) {
if (!mainTableName.equals(foreignKey.get(field)) && val.indexOf("`" + field + "`") > 0) {
String createForeignKeySql = String.format("alter table %s add foreign key %s(%s) references %s(%s);", mainTableName, mainTableName + field + System.currentTimeMillis(), field, foreignKey.get(field), field);
System.out.println(createForeignKeySql);
}
}
}
}
}
网址:如何快速生成MySQL数据库关系图 https://m.mxgxt.com/news/view/1684016
相关内容
mysql数据库表关系图怎么生成mysql 数据库关系图怎么生成 dataGrip
mysql怎么创建数据库关系图
如何查看mysql数据库表之间的关系
如何可视化MySQL数据库的表关联结构?
MySQL 如何设计电影数据库
mysql怎么建表关系图,数据库表关系怎么建
MySQL 入门:如何设计电影数据库
【MySQL速通篇002】pymysql简单操作mysql数据库的方法
揭秘MySQL:轻松一招,快速掌握数据库中的人脉规模!