diff --git a/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/builder/MysqlSqlBuilder.java b/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/builder/MysqlSqlBuilder.java index 02371b0c..bea6058e 100644 --- a/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/builder/MysqlSqlBuilder.java +++ b/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/builder/MysqlSqlBuilder.java @@ -93,7 +93,6 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder { script.append("\t").append("AUTO_INCREMENT=").append(newTable.getIncrementValue()).append(",\n"); } - // 判断是否有删除字段、新增字段及字段位置移动 // 判断新增字段 List addColumnList = new ArrayList<>(); for (TableColumn tableColumn : newTable.getColumnList()) { @@ -109,9 +108,9 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder { // append modify column for (TableColumn tableColumn : newTable.getColumnList()) { if ((StringUtils.isNotBlank(tableColumn.getEditStatus()) && StringUtils.isNotBlank(tableColumn.getColumnType()) - && StringUtils.isNotBlank(tableColumn.getName())) || moveColumnList.contains(tableColumn)) { + && StringUtils.isNotBlank(tableColumn.getName())) || moveColumnList.contains(tableColumn) || addColumnList.contains(tableColumn)) { MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(tableColumn.getColumnType()); - if (moveColumnList.contains(tableColumn)) { + if (moveColumnList.contains(tableColumn) || addColumnList.contains(tableColumn)) { script.append("\t").append(typeEnum.buildModifyColumn(tableColumn, true, findPrevious(tableColumn, newTable))).append(",\n"); } else { script.append("\t").append(typeEnum.buildModifyColumn(tableColumn)).append(",\n"); diff --git a/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/type/MysqlColumnTypeEnum.java b/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/type/MysqlColumnTypeEnum.java index 48b66a9e..d901b9b3 100644 --- a/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/type/MysqlColumnTypeEnum.java +++ b/chat2db-server/chat2db-plugins/chat2db-mysql/src/main/java/ai/chat2db/plugin/mysql/type/MysqlColumnTypeEnum.java @@ -220,6 +220,13 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder { return StringUtils.join("MODIFY COLUMN ", buildCreateColumnSql(tableColumn)); } } + if (isMove) { + if (columnName.equals("-1")) { + return StringUtils.join("MODIFY COLUMN ", buildCreateColumnSql(tableColumn)," FIRST"); + } else { + return StringUtils.join("MODIFY COLUMN ", buildCreateColumnSql(tableColumn), " AFTER ", columnName); + } + } return ""; }