diff --git a/dialects/dameng.go b/dialects/dameng.go index 15fc60c4..f8cc4696 100644 --- a/dialects/dameng.go +++ b/dialects/dameng.go @@ -688,6 +688,7 @@ func (db *dameng) CreateTableSQL(ctx context.Context, queryer core.Queryer, tabl col.Default = "0" } } + s, _ := ColumnString(db, col, false) b.WriteString(s) if i != len(table.ColumnsSeq())-1 { diff --git a/engine.go b/engine.go index c5970bbc..44662972 100644 --- a/engine.go +++ b/engine.go @@ -507,17 +507,8 @@ func (engine *Engine) dumpTables(ctx context.Context, tables []*schemas.Table, w } } - sqlstr, _, err := dstDialect.CreateTableSQL(ctx, engine.db, dstTable, dstTableName) - if err != nil { - return err - } - _, err = io.WriteString(w, sqlstr+";\n") - if err != nil { - return err - } - if dstTable.AutoIncrement != "" && dstDialect.Features().AutoincrMode == dialects.SequenceAutoincrMode { - sqlstr, err = dstDialect.CreateSequenceSQL(ctx, engine.db, utils.SeqName(dstTableName)) + sqlstr, err := dstDialect.CreateSequenceSQL(ctx, engine.db, utils.SeqName(dstTableName)) if err != nil { return err } @@ -527,6 +518,15 @@ func (engine *Engine) dumpTables(ctx context.Context, tables []*schemas.Table, w } } + sqlstr, _, err := dstDialect.CreateTableSQL(ctx, engine.db, dstTable, dstTableName) + if err != nil { + return err + } + _, err = io.WriteString(w, sqlstr+";\n") + if err != nil { + return err + } + if len(dstTable.PKColumns()) > 0 && dstDialect.URI().DBType == schemas.MSSQL { fmt.Fprintf(w, "SET IDENTITY_INSERT [%s] ON;\n", dstTable.Name) } diff --git a/session_schema.go b/session_schema.go index 52ffcf8e..73352135 100644 --- a/session_schema.go +++ b/session_schema.go @@ -46,16 +46,8 @@ func (session *Session) createTable(bean interface{}) error { session.statement.RefTable.Charset = session.statement.Charset tableName := session.statement.TableName() refTable := session.statement.RefTable - sqlStr, _, err := session.engine.dialect.CreateTableSQL(context.Background(), session.engine.db, refTable, tableName) - if err != nil { - return err - } - if _, err := session.exec(sqlStr); err != nil { - return err - } - if refTable.AutoIncrement != "" && session.engine.dialect.Features().AutoincrMode == dialects.SequenceAutoincrMode { - sqlStr, err = session.engine.dialect.CreateSequenceSQL(context.Background(), session.engine.db, utils.SeqName(tableName)) + sqlStr, err := session.engine.dialect.CreateSequenceSQL(context.Background(), session.engine.db, utils.SeqName(tableName)) if err != nil { return err } @@ -64,6 +56,14 @@ func (session *Session) createTable(bean interface{}) error { } } + sqlStr, _, err := session.engine.dialect.CreateTableSQL(context.Background(), session.engine.db, refTable, tableName) + if err != nil { + return err + } + if _, err := session.exec(sqlStr); err != nil { + return err + } + return nil }