diff --git a/integrations/session_cond_test.go b/integrations/session_cond_test.go index 881f5890..66650a72 100644 --- a/integrations/session_cond_test.go +++ b/integrations/session_cond_test.go @@ -216,7 +216,7 @@ func TestFindAndCount(t *testing.T) { assert.NoError(t, err) var results []FindAndCount - sess := testEngine.Where("name = ?", "test1") + sess := testEngine.Where(testEngine.Quote("name")+" = ?", "test1") conds := sess.Conds() err = sess.Find(&results) assert.NoError(t, err) diff --git a/integrations/session_count_test.go b/integrations/session_count_test.go index 1517dede..96daf910 100644 --- a/integrations/session_count_test.go +++ b/integrations/session_count_test.go @@ -63,7 +63,7 @@ func TestSQLCount(t *testing.T) { assertSync(t, new(UserinfoCount2), new(UserinfoBooks)) - total, err := testEngine.SQL("SELECT count(id) FROM " + testEngine.TableName("userinfo_count2", true)). + total, err := testEngine.SQL("SELECT count(" + testEngine.Quote("id") + ") FROM " + testEngine.TableName("userinfo_count2", true)). Count() assert.NoError(t, err) assert.EqualValues(t, 0, total) @@ -166,7 +166,7 @@ func TestCountWithGroupBy(t *testing.T) { }) assert.NoError(t, err) - cnt, err := testEngine.GroupBy("name").Count(new(CountWithTableName)) + cnt, err := testEngine.GroupBy(testEngine.Quote("name")).Count(new(CountWithTableName)) assert.NoError(t, err) assert.EqualValues(t, 2, cnt) } diff --git a/integrations/session_exist_test.go b/integrations/session_exist_test.go index 29546376..50ff36c8 100644 --- a/integrations/session_exist_test.go +++ b/integrations/session_exist_test.go @@ -48,19 +48,19 @@ func TestExistStruct(t *testing.T) { assert.NoError(t, err) assert.False(t, has) - has, err = testEngine.Where("name = ?", "test1").Exist(&RecordExist{}) + has, err = testEngine.Where(testEngine.Quote("name")+" = ?", "test1").Exist(&RecordExist{}) assert.NoError(t, err) assert.True(t, has) - has, err = testEngine.Where("name = ?", "test2").Exist(&RecordExist{}) + has, err = testEngine.Where(testEngine.Quote("name")+" = ?", "test2").Exist(&RecordExist{}) assert.NoError(t, err) assert.False(t, has) - has, err = testEngine.SQL("select * from "+testEngine.TableName("record_exist", true)+" where name = ?", "test1").Exist() + has, err = testEngine.SQL("select * from "+testEngine.TableName("record_exist", true)+" where "+testEngine.Quote("name")+" = ?", "test1").Exist() assert.NoError(t, err) assert.True(t, has) - has, err = testEngine.SQL("select * from "+testEngine.TableName("record_exist", true)+" where name = ?", "test2").Exist() + has, err = testEngine.SQL("select * from "+testEngine.TableName("record_exist", true)+" where "+testEngine.Quote("name")+" = ?", "test2").Exist() assert.NoError(t, err) assert.False(t, has) @@ -68,11 +68,11 @@ func TestExistStruct(t *testing.T) { assert.NoError(t, err) assert.True(t, has) - has, err = testEngine.Table("record_exist").Where("name = ?", "test1").Exist() + has, err = testEngine.Table("record_exist").Where(testEngine.Quote("name")+" = ?", "test1").Exist() assert.NoError(t, err) assert.True(t, has) - has, err = testEngine.Table("record_exist").Where("name = ?", "test2").Exist() + has, err = testEngine.Table("record_exist").Where(testEngine.Quote("name")+" = ?", "test2").Exist() assert.NoError(t, err) assert.False(t, has) @@ -123,10 +123,12 @@ func TestExistStructForJoin(t *testing.T) { session := testEngine.NewSession() defer session.Close() + var q = testEngine.Quote + session.Table("number"). - Join("INNER", "order_list", "order_list.id = number.lid"). - Join("LEFT", "player", "player.id = order_list.eid"). - Where("number.lid = ?", 1) + Join("INNER", "order_list", q("order_list.id = number.lid")). + Join("LEFT", "player", q("player.id = order_list.eid")). + Where(q("number.lid")+" = ?", 1) has, err := session.Exist() assert.NoError(t, err) assert.True(t, has) diff --git a/internal/statements/insert.go b/internal/statements/insert.go index c7fc8619..358ea300 100644 --- a/internal/statements/insert.go +++ b/internal/statements/insert.go @@ -45,6 +45,14 @@ func (statement *Statement) GenInsertSQL(colNames []string, args []interface{}) var hasInsertColumns = len(colNames) > 0 var needSeq = len(table.AutoIncrement) > 0 && (statement.dialect.URI().DBType == schemas.ORACLE || statement.dialect.URI().DBType == schemas.DAMENG) + if needSeq { + for _, col := range colNames { + if strings.EqualFold(col, table.AutoIncrement) { + needSeq = false + break + } + } + } if !hasInsertColumns && statement.dialect.URI().DBType != schemas.ORACLE && statement.dialect.URI().DBType != schemas.DAMENG {