Browse Source

兼容高斯

master v1.0.7
loshiqi 4 days ago
parent
commit
bd754d1507
2 changed files with 21 additions and 6 deletions
  1. +5
    -2
      chain.go
  2. +16
    -4
      prepare.go

+ 5
- 2
chain.go View File

@ -715,7 +715,10 @@ func (this *Query) CreateAllStmt() error {
if this.conn == nil { if this.conn == nil {
this.conn = DB this.conn = DB
} }
if DB_PROVIDER == "PgsqlDb" {
sql = sqlx.Rebind(sqlx.DOLLAR, sql)
sql = helper.StringJoin(sql, " RETURNING id")
}
stmt, err = this.conn.Prepare(sql) stmt, err = this.conn.Prepare(sql)
if err != nil { if err != nil {
@ -754,7 +757,7 @@ func (this *Query) CreateStmt() error {
} }
} }
sql = helper.StringJoin("insert into ", dbName, " ("+strings.Join(insert_data, " , ")+")", " VALUES ", "("+strings.Join(value_data, " , ")+")")
sql = helper.StringJoin("insert into ", dbName, " ("+strings.Join(insert_data, " , ")+")", " VALUES ", "("+strings.Join(value_data, " , ")+")", " RETURNING id")
} else { } else {
sql = helper.StringJoin("insert into ", dbName, " set ", strings.Join(this.data, " , ")) sql = helper.StringJoin("insert into ", dbName, " set ", strings.Join(this.data, " , "))
} }


+ 16
- 4
prepare.go View File

@ -234,11 +234,23 @@ func StmtForInsert(dbName, table string, data []string) (*sql.Stmt, error) {
* @return lastId error * @return lastId error
*/ */
func StmtForInsertExec(stmt *sql.Stmt, valuelist []interface{}) (int64, error) { func StmtForInsertExec(stmt *sql.Stmt, valuelist []interface{}) (int64, error) {
res, err := stmt.Exec(valuelist...)
if err != nil {
return 0, errors.New("创建失败:" + err.Error())
if DB_PROVIDER == "PgsqlDb" {
row := stmt.QueryRow(valuelist...)
var id int64
err = row.Scan(&id) // 扫描 RETURNING 返回的 ID
if err != nil {
return 0, errors.New("创建失败:" + err.Error())
}
return id, nil
} else {
res, err := stmt.Exec(valuelist...)
if err != nil {
return 0, errors.New("创建失败:" + err.Error())
}
return res.LastInsertId()
} }
return res.LastInsertId()
} }
/** /**


Loading…
Cancel
Save