PostgreSQL 學習總結

2021-08-17 07:11:58 字數 1653 閱讀 3334

xy

copy 命令用於批量的資料匯入或匯出

c 介面如下:

主要為一下三個函式

pres = pqexec(pconn, strsql.c_str());

pqputcopydata(pconn, strbuf.c_str(), strbuf.length())

pqputcopyend(pconn, strerrormsg)

其中第乙個為 執行sql語句函式,可以自己查閱,主要是其所執行的sql語句為:copy tablename (col1, col2, col3 ```) from stdin表示啟動重輸入中向表 tablename 的列 col1、col2、col3···等插入資料,(並不會在此時插入)。

第二個函式則是繫結將要插入的資料 strbuf, 其中strbuf 對於格式有比較嚴格的要求, 「col1value\tcol2value\tcol3value\n」,當其中一列為空時可直接省略。但不能忘記』\t』,最後一列後面』\t』換成』\n』。

第三個函式表示資料繫結結束,呼叫後將把資料copy如表中。

// 

__int64 insertrowbulk(pgconn *pconn, string strtablename, vector

fieldsname, vector

fieldsvalue)

strsql.pop_back();

strsql += " ) from stdin with null as '' ";

pres = pqexec(pconn, strsql.c_str());

if (pqresultstatus(pres) != pgres_copy_in)

pqclear(pres);

auto itr = fieldsvalue.cbegin();

for (; itr != fieldsvalue.cend(); ++itr)

strbuf.pop_back();

strbuf += "\n";

if (pqputcopydata(pconn, strbuf.c_str(), strbuf.length()) != 1)

char strerrormsg[256];

if (pqputcopyend(pconn, strerrormsg) != 1)

return

true;

}

這裡主要介紹坑了我的 有關時間和日期的幾種格式,具體包括 time date timestamp

time:fomate 『hh:mm:ss』

data: fomate 『yyyy-mm-dd』

timestamp: format 『yyyy-mm-dd hh:mm:ss』

當用上面copy的方式繫結時要以以上格式給定string,並且 不要忘記 」.

char* pqgetvalue(pgresult*, int, int);
其中第乙個引數為pqexec的返回結果,第二個引數為行,第三個引數為列。

這裡提一句,當返回型別為上面提到的 time date timestamp時,其返回值為上面對應的格式,但是 不帶 」,記住 不帶」.

postgresql問題總結

1.遠端連線的時候fatal no pg hba.conf entry for host 這個問題是資料庫初始化的data目錄下的pg hba.conf要加上host all all 0.0.0.0 0.0.0.0 md5,就是賦給所有ip訪問許可權 2.遠端連線的時候fatal password ...

CentOS學習日記 PostgreSQL篇

本文記錄postgresql在centos 6.7上安裝 配置 使用等方面的資料以及操作過程。一 準備工作 1 centos 6.7 2 網路ok 二 安裝 使用yum安裝postgresql。1 yuminstallpostgresql 三 初始化 當成功安裝好postgresql後,根據官網說明...

PostgreSQL學習手冊 模式Schema

乙個資料庫包含乙個或多個命名的模式,模式又包含表。模式還包含其它命名的物件,包括資料型別 函式,以及操作符。同乙個物件名可以在不同的模式裡使用而不會導致衝突 比如,schema1和myschema都可以包含叫做mytable的表。和資料庫不同,模式不是嚴格分離的 乙個使用者可以訪問他所連線的資料庫中...