diff --git a/database/explain.go b/database/explain.go index 1a0d8173c979635465a1f2fd19060ff964a9a124..3520b66a336fa06718bd576e7d1175b598db42f1 100644 --- a/database/explain.go +++ b/database/explain.go @@ -1031,9 +1031,6 @@ func (db *Connector) Explain(sql string, explainType int, formatType int) (exp * if err != nil { return exp, err } - if res.Error != nil { - return exp, res.Error - } // 解析mysql结果,输出ExplainInfo exp, err = ParseExplainResult(res, formatType) diff --git a/database/mysql.go b/database/mysql.go index 68aa971e80f121b6168a46bb2438f0feafd3b88b..a9140df392cdc4765601ed539769357715454355 100644 --- a/database/mysql.go +++ b/database/mysql.go @@ -93,6 +93,9 @@ func (db *Connector) Query(sql string, params ...interface{}) (QueryResult, erro } } + if res.Error != nil && err == nil { + err = res.Error + } return res, err } @@ -101,8 +104,8 @@ func (db *Connector) Version() (int, error) { version := 99999 // 从数据库中获取版本信息 res, err := db.Query("select @@version") - if err != nil || res.Error != nil { - common.Log.Warn("(db *Connector) Version() Error: %v, MySQL Error: %v", err, res.Error) + if err != nil{ + common.Log.Warn("(db *Connector) Version() Error: %v", err) return version, err } diff --git a/database/show.go b/database/show.go index 7628bea9f910b6e58b9a0861dc2a749a029505c1..ba3f4be5eb384b3527c1bd488ede0e7b1765bb69 100644 --- a/database/show.go +++ b/database/show.go @@ -91,9 +91,6 @@ func (db *Connector) ShowTables() ([]string, error) { if err != nil { return []string{}, err } - if res.Error != nil { - return []string{}, res.Error - } // 获取值 var tables []string @@ -118,9 +115,6 @@ func (db *Connector) ShowTableStatus(tableName string) (*TableStatInfo, error) { if err != nil { return tbStatus, err } - if res.Error != nil { - return tbStatus, res.Error - } ts := tableStatusRow{} statusFields := make([]interface{}, 0) @@ -200,9 +194,6 @@ func (db *Connector) ShowIndex(tableName string) (*TableIndexInfo, error) { if err != nil { return nil, err } - if res.Error != nil { - return nil, res.Error - } // 获取值 for res.Rows.Next() { @@ -322,9 +313,6 @@ func (db *Connector) ShowColumns(tableName string) (*TableDesc, error) { if err != nil { return nil, err } - if res.Error != nil { - return nil, res.Error - } // 获取值 for res.Rows.Next() { @@ -359,9 +347,6 @@ func (db *Connector) showCreate(createType, name string) (string, error) { if err != nil { return "", err } - if res.Error != nil { - return "", res.Error - } // 获取 CREATE TABLE 语句 var tableName, createTable string @@ -444,10 +429,6 @@ func (db *Connector) FindColumn(name, dbName string, tables ...string) ([]*commo common.Log.Error("(db *Connector) FindColumn Error : ", err) return columns, err } - if res.Error != nil { - common.Log.Error("(db *Connector) FindColumn Error : ", res.Error) - return columns, res.Error - } var col common.Column for res.Rows.Next() { @@ -473,10 +454,6 @@ func (db *Connector) FindColumn(name, dbName string, tables ...string) ([]*commo common.Log.Error("(db *Connector) FindColumn Error : ", err) return columns, err } - if res.Error != nil { - common.Log.Error("(db *Connector) FindColumn Error : ", res.Error) - return columns, res.Error - } var tbCollation string if newRes.Rows.Next() { @@ -506,10 +483,6 @@ func (db *Connector) IsForeignKey(dbName, tbName, column string) bool { common.Log.Error("IsForeignKey, Error: %s", err.Error()) return false } - if res.Error != nil { - common.Log.Error("IsForeignKey, Error: %s", res.Error.Error()) - return false - } if res.Rows.Next() { return true } @@ -532,9 +505,7 @@ type ReferenceValue struct { // ShowReference 查找所有的外键信息 func (db *Connector) ShowReference(dbName string, tbName ...string) ([]ReferenceValue, error) { var referenceValues []ReferenceValue - sql := `SELECT C.REFERENCED_TABLE_SCHEMA,C.REFERENCED_TABLE_NAME,C.TABLE_SCHEMA,C.TABLE_NAME,C.CONSTRAINT_NAME -FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE C JOIN INFORMATION_SCHEMA. TABLES T ON T.TABLE_NAME = C.TABLE_NAME -WHERE C.REFERENCED_TABLE_NAME IS NOT NULL` + sql := `SELECT DISTINCT C.REFERENCED_TABLE_SCHEMA,C.REFERENCED_TABLE_NAME,C.TABLE_SCHEMA,C.TABLE_NAME,C.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE C JOIN INFORMATION_SCHEMA. TABLES T ON T.TABLE_NAME = C.TABLE_NAME WHERE C.REFERENCED_TABLE_NAME IS NOT NULL` sql = sql + fmt.Sprintf(` AND C.TABLE_SCHEMA = "%s"`, dbName) if len(tbName) > 0 { @@ -548,9 +519,6 @@ WHERE C.REFERENCED_TABLE_NAME IS NOT NULL` if err != nil { return referenceValues, err } - if res.Error != nil { - return referenceValues, res.Error - } // 获取值 for res.Rows.Next() { diff --git a/env/env.go b/env/env.go index cc21a03ccae7bc946621569ebed1b6c9ee33a7a3..7ae1c5120c84f1015a14ea3a4d6b86972de297ec 100644 --- a/env/env.go +++ b/env/env.go @@ -139,7 +139,7 @@ func (ve VirtualEnv) CleanUp() bool { common.Log.Debug("CleanUp ...") for db := range ve.hash2Db { ve.Database = db - _, err := ve.Query("drop database %s", db) + _, err := ve.Query(fmt.Sprintf("drop database %s", db)) if err != nil { common.Log.Error("CleanUp failed Error: %s", err) return false @@ -178,7 +178,7 @@ func (ve *VirtualEnv) CleanupTestDatabase() { subHour := time.Since(pastTime).Hours() if subHour > float64(minHour) { - if _, err := ve.Query("drop database %s", testDatabase); err != nil { + if _, err := ve.Query(fmt.Sprintf("drop database %s", testDatabase)); err != nil { common.Log.Error("CleanupTestDatabase failed Error: %s", err.Error()) continue }