mysql修改列顺序

This commit is contained in:
tmlx1990
2024-05-29 23:05:23 +08:00
parent 6a60df3c0a
commit cca3173c2a
2 changed files with 9 additions and 3 deletions

View File

@ -93,7 +93,6 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder {
script.append("\t").append("AUTO_INCREMENT=").append(newTable.getIncrementValue()).append(",\n");
}
// 判断是否有删除字段、新增字段及字段位置移动
// 判断新增字段
List<TableColumn> 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");

View File

@ -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 "";
}