Skip to content

Commit c2b5fed

Browse files
authored
Merge pull request OtterMind#1178 from tmlx1990/fix1174
fix:1174 达梦数据库新建表的时候可以设置自增
2 parents 0836006 + 14db8b9 commit c2b5fed

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

chat2db-server/chat2db-plugins/chat2db-dm/src/main/java/ai/chat2db/plugin/dm/type/DMColumnTypeEnum.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public enum DMColumnTypeEnum implements ColumnBuilder {
4747

4848
FLOAT("FLOAT", true, false, true, false, false, false, true, true, false, false),
4949

50-
INT("INT", false, false, true, false, false, false, true, true, false, false),
50+
INT("INT", false, false, true, true, false, false, true, true, false, false),
5151

5252
// INTEGER("INTEGER", false, false, true, false, false, false, true, true, false, false),
5353

@@ -159,11 +159,26 @@ public String buildCreateColumnSql(TableColumn column) {
159159

160160
script.append(buildDefaultValue(column, type)).append(" ");
161161

162+
script.append(buildAutoIncrement(column,type)).append(" ");
163+
162164
script.append(buildNullable(column, type)).append(" ");
163165

164166
return script.toString();
165167
}
166168

169+
private String buildAutoIncrement(TableColumn column, DMColumnTypeEnum type) {
170+
if(!type.getColumnType().isSupportAutoIncrement()){
171+
return "";
172+
}
173+
if (column.getAutoIncrement() != null && column.getAutoIncrement()
174+
&& column.getSeed() != null && column.getSeed() > 0 && column.getIncrement() != null && column.getIncrement() > 0) {
175+
return "IDENTITY(" + column.getSeed() + "," + column.getIncrement() + ")";
176+
}
177+
if (column.getAutoIncrement() != null && column.getAutoIncrement()) {
178+
return "IDENTITY(1,1)";
179+
}
180+
return "";
181+
}
167182

168183
private String buildNullable(TableColumn column, DMColumnTypeEnum type) {
169184
if (!type.getColumnType().isSupportNullable()) {

chat2db-server/chat2db-spi/src/main/java/ai/chat2db/spi/model/TableColumn.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,22 @@ public class TableColumn {
199199
// sqlserver
200200
private String defaultConstraintName;
201201

202+
// DM 种子
203+
private Integer seed;
204+
205+
// DM 增量值
206+
private Integer increment;
207+
202208
@Override
203209
public boolean equals(Object o) {
204-
if (this == o) return true;
205-
if (o == null || getClass() != o.getClass()) return false;
210+
if (this == o) { return true;}
211+
if (o == null || getClass() != o.getClass()) { return false;}
206212
TableColumn that = (TableColumn) o;
207-
return Objects.equals(name, that.name) && Objects.equals(tableName, that.tableName) && Objects.equals(columnType, that.columnType) && Objects.equals(defaultValue, that.defaultValue) && Objects.equals(autoIncrement, that.autoIncrement) && Objects.equals(comment, that.comment) && Objects.equals(columnSize, that.columnSize) && Objects.equals(decimalDigits, that.decimalDigits) && Objects.equals(numPrecRadix, that.numPrecRadix) && Objects.equals(sqlDataType, that.sqlDataType) && Objects.equals(ordinalPosition, that.ordinalPosition) && Objects.equals(nullable, that.nullable) && Objects.equals(extent, that.extent) && Objects.equals(charSetName, that.charSetName) && Objects.equals(collationName, that.collationName) && Objects.equals(value, that.value) && Objects.equals(unit, that.unit) && Objects.equals(sparse, that.sparse) && Objects.equals(defaultConstraintName, that.defaultConstraintName);
213+
return Objects.equals(name, that.name) && Objects.equals(tableName, that.tableName) && Objects.equals(columnType, that.columnType) && Objects.equals(defaultValue, that.defaultValue) && Objects.equals(autoIncrement, that.autoIncrement) && Objects.equals(comment, that.comment) && Objects.equals(columnSize, that.columnSize) && Objects.equals(decimalDigits, that.decimalDigits) && Objects.equals(numPrecRadix, that.numPrecRadix) && Objects.equals(sqlDataType, that.sqlDataType) && Objects.equals(ordinalPosition, that.ordinalPosition) && Objects.equals(nullable, that.nullable) && Objects.equals(extent, that.extent) && Objects.equals(charSetName, that.charSetName) && Objects.equals(collationName, that.collationName) && Objects.equals(value, that.value) && Objects.equals(unit, that.unit) && Objects.equals(sparse, that.sparse) && Objects.equals(defaultConstraintName, that.defaultConstraintName) && Objects.equals(seed, that.seed) && Objects.equals(increment, that.increment);
208214
}
209215

210216
@Override
211217
public int hashCode() {
212-
return Objects.hash(name, tableName, columnType, defaultValue, autoIncrement, comment, columnSize, decimalDigits, numPrecRadix, sqlDataType, ordinalPosition, nullable, extent, charSetName, collationName, value, unit, sparse, defaultConstraintName);
218+
return Objects.hash(name, tableName, columnType, defaultValue, autoIncrement, comment, columnSize, decimalDigits, numPrecRadix, sqlDataType, ordinalPosition, nullable, extent, charSetName, collationName, value, unit, sparse, defaultConstraintName, seed, increment);
213219
}
214220
}

0 commit comments

Comments
 (0)