Unverified Commit 70c4d1f1 authored by zzzzzzzs's avatar zzzzzzzs Committed by GitHub

[Feature][Auto Create Mysql table] MySQL automatically creates tables...

[Feature][Auto Create Mysql table] MySQL automatically creates tables consistent with the original tables (#1179)

* MySQL automatically creates tables consistent with the original tables

* Optimization type length judgment logic

* format code

* format code import
parent 09a9d4aa
......@@ -46,6 +46,7 @@ public class Column implements Serializable {
private ColumnType javaType;
private String columnFamily;
private Integer position;
private Integer length;
private Integer precision;
private Integer scale;
private String characterSet;
......
......@@ -82,18 +82,16 @@ public class MySqlDriver extends AbstractJdbcDriver {
for (int i = 0; i < table.getColumns().size(); i++) {
Column column = table.getColumns().get(i);
sb.append(" `")
.append(column.getName()).append("` ")
.append(column.getType()).append(" ");
//todo tmp process for varchar
if (column.getType().equals("varchar")) {
sb.append("(255)");
}
if (column.getPrecision() > 0) {
sb.append("(").append(column.getPrecision());
if (column.getScale() > 0) {
sb.append(",").append(column.getScale());
}
sb.append(")");
.append(column.getName()).append("` ")
.append(column.getType());
// 处理浮点类型
if (column.getPrecision() > 0 && column.getScale() > 0) {
sb.append("(")
.append(column.getLength())
.append(",").append(column.getScale())
.append(")");
} else if (null != column.getLength()) { // 处理字符串类型和数值型
sb.append("(").append(column.getLength()).append(")");
}
if (Asserts.isNotNull(column.getCharacterSet())) {
sb.append(" CHARACTER SET ").append(column.getCharacterSet());
......
......@@ -42,7 +42,7 @@ public class MySqlQuery extends AbstractDBQuery {
@Override
public String columnsSql(String schemaName, String tableName) {
return "select COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT,COLUMN_KEY,EXTRA AS AUTO_INCREMENT"
return "select COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT,COLUMN_KEY,EXTRA AS AUTO_INCREMENT"
+ ",COLUMN_DEFAULT,IS_NULLABLE,NUMERIC_PRECISION,NUMERIC_SCALE,CHARACTER_SET_NAME"
+ ",COLLATION_NAME,ORDINAL_POSITION from INFORMATION_SCHEMA.COLUMNS "
+ "where TABLE_SCHEMA = '" + schemaName + "' and TABLE_NAME = '" + tableName + "' "
......@@ -54,4 +54,8 @@ public class MySqlQuery extends AbstractDBQuery {
return "Database";
}
@Override
public String columnType() {
return "COLUMN_TYPE";
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment