PostgreSQL Support in Go: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 20: | Line 20: | ||
db, err := sql.Open("postgres", url) | db, err := sql.Open("postgres", url) | ||
if err != nil { | if err != nil { | ||
... | |||
} | } | ||
defer func() { | defer func() { | ||
if err := db.Close(); err != nil { | if err := db.Close(); err != nil { | ||
... | |||
} | } | ||
}() | }() | ||
Line 30: | Line 30: | ||
err = db.Ping() | err = db.Ping() | ||
if err != nil { | if err != nil { | ||
... | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 37: | Line 37: | ||
=Create a Table= | =Create a Table= | ||
<syntaxhighlight lang='go'> | |||
sql := `CREATE TABLE IF NOT EXISTS TEST ("ID" int, "NAME" varchar(10))` | |||
_, err = db.Exec(sql) | |||
if err != nil { | |||
... | |||
} | |||
</syntaxhighlight> | |||
=Delete a Table= | =Delete a Table= | ||
=Insert a Row= | =Insert a Row= |
Revision as of 03:50, 14 October 2023
Internal
Open a Connection
import (
"database/sql"
_ "github.com/lib/pq"
)
...
role := "ovidiu"
password := "something"
databaseHost := "localhost"
databaseName := "testdb"
url := fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable", role, password, databaseHost, databaseName)
db, err := sql.Open("postgres", url)
if err != nil {
...
}
defer func() {
if err := db.Close(); err != nil {
...
}
}()
err = db.Ping()
if err != nil {
...
}
sql.Open()
returns a database handle. The implementation maintains a pool of zero or more underlying connections, and it is safe for concurrent use by multiple goroutines.
Create a Table
sql := `CREATE TABLE IF NOT EXISTS TEST ("ID" int, "NAME" varchar(10))`
_, err = db.Exec(sql)
if err != nil {
...
}