go使用PostgreSQL資料庫

2021-10-19 07:45:45 字數 1597 閱讀 5558

postgresql 是乙個自由的物件-關聯式資料庫伺服器(資料庫管理系統),它在靈活的 bsd-風格許可證下發行。它提供了相對其他開放源**資料庫系統(比如 mysql 和 firebird),和對專有系統比如 oracle、sybase、ibm 的 db2 和 microsoft sql server的一種選擇。

postgresql和mysql比較,它更加龐大一點,因為它是用來替代oracle而設計的。所以在企業應用中採用postgresql是乙個明智的選擇。

mysql被oracle收購之後正在逐步的封閉(自mysql 5.5.31以後的所有版本將不再遵循gpl協議),鑑於此,將來我們也許會選擇postgresql而不是mysql作為專案的後端資料庫。

go實現的支援postgresql的驅動也很多,因為國外很多人在開發中使用了這個資料庫。

在下面的示例中我採用了第乙個驅動,因為它目前使用的人最多,在github上也比較活躍。

資料庫建表語句:

create table userinfo

( uid serial not null,

username character varying(100) not null,

departname character varying(500) not null,

created date,

constraint userinfo_pkey primary key (uid)

)with (oids=false);

create table userdeatail

( uid integer,

intro character varying(100),

profile character varying(100)

)with(oids=false);

看下面這個go如何運算元據庫表資料:增刪改查

package main

import (

"database/sql"

"fmt"

_ ""

)func main()

//刪除資料

stmt, err = db.prepare("delete from userinfo where uid=$1")

checkerr(err)

res, err = stmt.exec(1)

checkerr(err)

affect, err = res.rowsaffected()

checkerr(err)

fmt.println(affect)

db.close()

}func checkerr(err error)

}

從上面的**我們可以看到,postgresql是通過$1,$2這種方式來指定要傳遞的引數,而不是mysql中的?,另外在sql.open中的dsn資訊的格式也與mysql的驅動中的dsn格式不一樣,所以在使用時請注意它們的差異。

還有pg不支援lastinsertid函式,因為postgresql內部沒有實現類似mysql的自增id返回,其他的**幾乎是一模一樣。

Go語言使用PostgreSQL資料庫

postgresql和mysql比較,它更加龐大一點,因為它是用來替代oracle而設計的。所以在企業應用中採用postgresql是乙個明智的選擇。現在mysql被oracle收購之後,有傳聞oracle正在逐步的封閉mysql,鑑於此,將來我們也許會選擇postgresql而不是mysql作為專...

使用安全SSL連線PostgreSQL資料庫

2020年4月8日15 29 47 今天主要是在postgresql資料庫上面遇到的乙個要求 配置ssl方式連線資料庫,連線後檢視版本正確。ssl 的英文全稱是 secure sockets layer 中文名為 安全套接層協議層 它是網景 netscape 公司提出的基於 web 應用的安全協議。...

Rails4 使用postgreSQL做資料庫

1.首先在ubuntu下安裝postgresql sudo apt get install postgresql2.啟動postgresql伺服器 sudo etc init.d postgresql start3.登陸postgresql postgresql安裝完成後預設只有乙個使用者 就是po...