-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpg_test.go
56 lines (47 loc) · 1.12 KB
/
pg_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
@Time : 2021/8/25 上午11:22
@Author : nutao
@File : pg_test
@Description: NULL
*/
// Package main ...
package main
import (
"database/sql"
"fmt"
"log"
"strings"
"testing"
_ "github.com/lib/pq"
)
func TestQueryPG(t *testing.T) {
connStr := "user=postgres dbname=postgres password=123456 host=xx.xx.xx.xxc port=5432 sslmode=disable"
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
nameList := []interface{}{"test"}
fmt.Println(ValuesInCondition(nameList))
querySQL := "xxxx"
rows, err := db.Query(querySQL)
defer rows.Close()
if err != nil {
t.Fatal(err)
}
result := make(map[string][]*Table)
for rows.Next() {
t := &Table{}
if err := rows.Scan(&t.TableSchema, &t.TableName, &t.TableType, &t.TableComment); err != nil {
log.Fatal(err)
}
t.TableComment = strings.TrimSpace(t.TableComment)
result[t.TableSchema] = append(result[t.TableSchema], t)
}
t.Log(result)
}
func ValuesInCondition(values []interface{}) (string, []interface{}) {
if len(values) == 0 {
return "0", values
}
return fmt.Sprintf("(?%s)", strings.Repeat(",?", len(values)-1)), values
}