Fix oracle table edit error

This commit is contained in:
SwallowGG
2023-11-03 16:04:35 +08:00
parent b7ddff2022
commit e1cbe0293c
19 changed files with 69 additions and 19 deletions

View File

@ -8,6 +8,7 @@ import ai.chat2db.spi.model.Database;
import ai.chat2db.spi.model.Table;
import ai.chat2db.spi.model.TableColumn;
import ai.chat2db.spi.model.TableIndex;
import ai.chat2db.spi.util.TableUtils;
import org.apache.commons.lang3.StringUtils;
@ -86,7 +87,7 @@ public class MysqlSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
for (TableColumn tableColumn : newTable.getColumnList()) {
if (StringUtils.isNotBlank(tableColumn.getEditStatus()) && StringUtils.isNotBlank(tableColumn.getColumnType())&& StringUtils.isNotBlank(tableColumn.getName())){
MysqlColumnTypeEnum typeEnum = MysqlColumnTypeEnum.getByType(tableColumn.getColumnType());
script.append("\t").append(typeEnum.buildModifyColumn(tableColumn)).append(",\n");
script.append("\t").append(typeEnum.buildModifyColumn(tableColumn, TableUtils.getTableColumn(oldTable,tableColumn.getOldName()))).append(",\n");
}
}

View File

@ -181,7 +181,7 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder {
}
@Override
public String buildModifyColumn(TableColumn tableColumn) {
public String buildModifyColumn(TableColumn tableColumn, TableColumn oldColumn) {
if (EditStatus.DELETE.name().equals(tableColumn.getEditStatus())) {
return StringUtils.join("DROP COLUMN `", tableColumn.getName() + "`");