support table primary key

This commit is contained in:
SwallowGG
2023-11-06 10:04:02 +08:00
parent e4a21cf250
commit 9b3adb18ee
22 changed files with 317 additions and 78 deletions

View File

@ -4,12 +4,9 @@ import ai.chat2db.plugin.oracle.type.OracleColumnTypeEnum;
import ai.chat2db.plugin.oracle.type.OracleIndexTypeEnum;
import ai.chat2db.spi.SqlBuilder;
import ai.chat2db.spi.jdbc.DefaultSqlBuilder;
import ai.chat2db.spi.model.Schema;
import ai.chat2db.spi.model.Table;
import ai.chat2db.spi.model.TableColumn;
import ai.chat2db.spi.model.TableIndex;
import ai.chat2db.spi.sql.Chat2DBContext;
import ai.chat2db.spi.util.TableUtils;
import org.apache.commons.lang3.StringUtils;
public class OracleSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
@ -82,7 +79,7 @@ public class OracleSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
for (TableColumn tableColumn : newTable.getColumnList()) {
if (StringUtils.isNotBlank(tableColumn.getEditStatus())) {
OracleColumnTypeEnum typeEnum = OracleColumnTypeEnum.getByType(tableColumn.getColumnType());
script.append("\t").append(typeEnum.buildModifyColumn(tableColumn, TableUtils.getTableColumn(oldTable,tableColumn.getOldName()))).append(";\n");
script.append("\t").append(typeEnum.buildModifyColumn(tableColumn)).append(";\n");
if (StringUtils.isNotBlank(tableColumn.getComment())) {
script.append("\n").append(buildComment(tableColumn)).append(";\n");
}

View File

@ -215,7 +215,7 @@ public enum OracleColumnTypeEnum implements ColumnBuilder {
@Override
public String buildModifyColumn(TableColumn tableColumn, TableColumn oldColumn) {
public String buildModifyColumn(TableColumn tableColumn) {
if (EditStatus.DELETE.name().equals(tableColumn.getEditStatus())) {
StringBuilder script = new StringBuilder();
@ -232,7 +232,7 @@ public enum OracleColumnTypeEnum implements ColumnBuilder {
if (EditStatus.MODIFY.name().equals(tableColumn.getEditStatus())) {
StringBuilder script = new StringBuilder();
script.append("ALTER TABLE "). append("\"").append(tableColumn.getSchemaName()).append("\".\"").append(tableColumn.getTableName()).append("\"");
script.append(" ").append("MODIFY (").append(buildModifyColumnSql(tableColumn,oldColumn)).append(") \n" );
script.append(" ").append("MODIFY (").append(buildModifyColumnSql(tableColumn,tableColumn.getOldColumn())).append(") \n" );
if (!StringUtils.equalsIgnoreCase(tableColumn.getOldName(), tableColumn.getName())) {
script.append(";");