内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

postgresql讀的簡(jiǎn)單介紹

postgresql怎么讀

“p偶四t g瑞e 噻噎k野u”

10年積累的網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有涇縣免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

唉,,,,用文字表示聲音,真難。

如何在PostgreSQL中建只讀賬號(hào)

在PostgreSQL中并沒(méi)有CREATE TABLE權(quán)限名稱,這是與其它數(shù)據(jù)庫(kù)不同的一個(gè)地方,PostgreSQL是通過(guò)控制是否在模式schema中上有CREATE控制用戶的能否創(chuàng)建表的權(quán)限的,默認(rèn)安裝下,任何用戶都有在模式public中CREATE的權(quán)限,所以要?jiǎng)?chuàng)建只讀賬號(hào)的第一步,我們要先去除在模式public中的CREATE權(quán)限:

REVOKE CREATE ON SCHEMA public from public;

下面的SQL創(chuàng)建了一個(gè)名為“readonly”的用戶:

CREATE USER readonly with password 'query';

然后把現(xiàn)有的所有在public這個(gè)schema下的表的SELECT權(quán)限賦給用戶readonly,執(zhí)行下面的SQL命令:

GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

上面的SQL命令只把現(xiàn)有的表的權(quán)限給了用戶readonly,但如果這之后創(chuàng)建的表,readonly用戶還是不能讀,需要使用下面的SQL把以后創(chuàng)建的表的SELECT權(quán)限也給用戶readonly:

關(guān)于postgrsql讀取數(shù)據(jù)庫(kù)的問(wèn)題!

PostgreSQL中的bytea字段類型可以以二進(jìn)制的形式存儲(chǔ)數(shù)據(jù),這樣做的好處就是可以將原本存儲(chǔ)在網(wǎng)站目錄下的文件存儲(chǔ)到數(shù)據(jù)庫(kù)中,壞處就是如果文件過(guò)多、過(guò)大的話,就會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的數(shù)據(jù)量大大增加,備份和恢復(fù)的時(shí)候就會(huì)浪費(fèi)大量的時(shí)間,而且數(shù)據(jù)也有可能會(huì)出錯(cuò)。個(gè)人覺(jué)得,在文件量小的情況下,使用這種存儲(chǔ)方式還是很方便的。

言歸正傳,下面介紹一下使用bytea字段存讀取文件的具體實(shí)現(xiàn)方法。首先是文件存儲(chǔ)于存儲(chǔ)于bytea字段的方法,主要用到的就是PHP中的pg_escape_bytea方法,代碼如下:

?php

$dbconn = pg_connect("host='localhost' dbname='dbname' user='user' password='password' port='port'")

OR DIE('Could not connect:' . pg_last_error());

$fileUrl = iconv("utf-8", "gbk", $fileUrl);//$fileName為文件路徑地址,漢字可能會(huì)亂碼,此處處理一下

$fileContents = file_get_contents($fileUrl);

$escapeBytea = pg_escape_bytea($fileContents);//轉(zhuǎn)義bytea數(shù)據(jù)類型的二進(jìn)制字符串

$insertStr = "INSERT INTO tableName(id, contents)

VALUES(DEFAULT, '{$escapeBytea}')";

pg_query($dbconn, $insertStr);

?

 從bytea字段中還原文件用到的是PHP中的pg_unescape_bytea方法,實(shí)現(xiàn)代碼如下:

?php

$dbconn = pg_connect("host='localhost' dbname='dbname' user='user' password='password' port='port'")

OR DIE('Could not connect: ' . pg_last_error());

$selectStr = "SELECT contents

FROM tableName

WHERE id = " . $fileId;//$fileId為文件id

$query = pg_query($dbconn, $selectStr);

while($row = pg_fetch_array($query, null, PGSQL_ASSOC)){

$escapeBytea = $row['contents'];

$fileContents = pg_unescape_bytea($escapeBytea); //獲得二進(jìn)制數(shù)據(jù)

file_put_contents($fileName, $fileContents); //$fileName為帶有后綴名的文件名,如hello.pdf

}

?

導(dǎo)出文件后,如果二進(jìn)制數(shù)據(jù)轉(zhuǎn)碼錯(cuò)誤就會(huì)出現(xiàn)文件打不開(kāi)的現(xiàn)象,比如錯(cuò)誤的PDF文件打開(kāi)時(shí)彈出錯(cuò)誤如下圖:

這種錯(cuò)誤在數(shù)據(jù)庫(kù)遷移時(shí)特別容易出現(xiàn)(本人是從PostgreSQL 8.4遷移到9.1),解決的方法是修改PostgreSQL的配置文件

postgresql.conf,將bytea_output的輸出類型設(shè)置為轉(zhuǎn)義類型(escape)輸出,即bytea_output = 'escape'(如果前面有#,刪除開(kāi)啟配置),然后reload一下PostgreSQL的配置使修改生效,這樣二進(jìn)制數(shù)據(jù)就可以正常解碼并輸出到文件。

PostgreSQL從菜鳥(niǎo)到專家 什么是PostgreSQL數(shù)據(jù)庫(kù)

PostgreSQL

是一個(gè)自由的對(duì)象-關(guān)系數(shù)據(jù)庫(kù)服務(wù)器(數(shù)據(jù)庫(kù)管理系統(tǒng)),它在靈活的 BSD-風(fēng)格許可證下發(fā)行。它提供了相對(duì)其他開(kāi)放源代碼數(shù)據(jù)庫(kù)系統(tǒng)(比如

MySQL 和 Firebird),和專有系統(tǒng)(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL

Server)之外的另一種選擇。

PostgreSQL 不尋常的名字導(dǎo)致一些讀者停下來(lái)嘗試拼讀它,特別是那些把SQL拼讀為"sequel"的人。PostgreSQL 開(kāi)發(fā)者把它拼讀為 "post-gress-Q-L"。它也經(jīng)常被簡(jiǎn)略念為 "postgres"。

PostgreSQL 有哪些經(jīng)典入門書(shū)籍

PostgreSQL(數(shù)據(jù)庫(kù))資料

About:PostgreSQL About

《PostgreSQL 源碼分析系列》

PostgreSQL 源碼分析系列

介紹:PostgreSQL 源碼分析系列文章

《PG 內(nèi)存上下文》

介紹:PG 內(nèi)存上下文,code

《PostgreSQL及其代碼的結(jié)構(gòu)》

介紹:PostgreSQL及其代碼的結(jié)構(gòu)

《A Tour of PostgreSQL Internals》

介紹:PostgreSQL內(nèi)部的概覽,可以結(jié)合上面的pg代碼結(jié)構(gòu)來(lái)閱讀

《PostgreSQL 中的 Json —從使用到源碼》

介紹:PostgreSQL 中的 Json —從使用到源碼

《PostgreSQL鎖機(jī)制分析》

ASP.NET如何讀取POSTGRESQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)

我也得上線才能看到問(wèn)題吧…………排前十用query就行了SELECT TOP 10 FROM 表 WHERE 篩選字段='要求' ORDER BY 排序字段OleDbConnection conn = new OleDbConnection(connectionString);OleDbCommand comm = new OleDbCommand(conn, query);conn.Open(); //這句經(jīng)常忘,剛剛就忘了OleDbDataReader dr = comm.Excute();while(dr.read()){ Console.Writeline(dr("字段名").ToString()); //想怎么輸出就怎么輸出 }conn.Close();//這句也經(jīng)常忘,剛剛也給忘了

分享題目:postgresql讀的簡(jiǎn)單介紹
鏈接分享:http://m.rwnh.cn/article40/dscooho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司虛擬主機(jī)、定制網(wǎng)站網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
涪陵区| 石嘴山市| 太谷县| 讷河市| 井研县| 昌都县| 南京市| 阿克陶县| 白沙| 陕西省| 神木县| 五指山市| 鞍山市| 苍山县| 神农架林区| 尼玛县| 晋江市| 南丹县| 高雄市| 乌拉特后旗| 惠州市| 广汉市| 星子县| 平塘县| 金平| 平原县| 察隅县| 五峰| 乌拉特前旗| 南岸区| 田阳县| 重庆市| 沙洋县| 聊城市| 新丰县| 原阳县| 鄱阳县| 兴海县| 江安县| 灵山县| 汨罗市|