sqlServer 转成mysql ddl语言 java脚本
时间: 2023-11-29 09:04:48 浏览: 76
Navicat客户端sqlserver表结构转到mysql数据库中操作文档
转换 SQL Server 到 MySQL 的 DDL 语言可以使用一些工具,如 MySQL Workbench、SQL Server Migration Assistant 等。以下是一个使用 Java 编写的脚本,可以将 SQL Server 的 DDL 转换为 MySQL 的 DDL。
```
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class SQLServerToMySQLDDLConverter {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: SQLServerToMySQLDDLConverter <inputfile> <outputfile>");
return;
}
String inputFile = args[0];
String outputFile = args[1];
String ddl = convertDDL(inputFile);
writeFile(outputFile, ddl);
}
private static String convertDDL(String inputFile) {
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(inputFile))) {
String line;
while ((line = br.readLine()) != null) {
if (!line.trim().startsWith("CREATE TABLE")) {
continue;
}
line = line.replaceAll("IDENTITY\\(\\d+\\)", "AUTO_INCREMENT");
line = line.replaceAll("\\[", "`");
line = line.replaceAll("\\]", "`");
sb.append(line).append("\n");
while ((line = br.readLine()) != null && !line.trim().startsWith(")")) {
line = line.replaceAll("IDENTITY\\(\\d+\\)", "AUTO_INCREMENT");
line = line.replaceAll("\\[", "`");
line = line.replaceAll("\\]", "`");
sb.append(line).append("\n");
}
sb.append(line).append("\n");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
private static void writeFile(String outputFile, String ddl) {
try {
File file = new File(outputFile);
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
fw.write(ddl);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个脚本假定输入文件是 SQL Server 的 DDL,输出文件是 MySQL 的 DDL。它将 `CREATE TABLE` 替换为 MySQL 的语法,将方括号替换为反引号,并将 `IDENTITY` 关键字替换为 MySQL 的 `AUTO_INCREMENT` 关键字。
阅读全文