更改拥有者:
博野ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
usage()
{
cat EOF
usage: $0 options
This script set ownership for all table, sequence and views for a given database
Credit: Based on by Alex Soto
Also merged changes from @sharoonthomas
OPTIONS:
-h Show this message
-d Database name
-o Owner
EOF
}
DB_NAME=
NEW_OWNER=
PGSQL_USER=postgres
while getopts "hd:o:" OPTION
do
case $OPTION in
h)
usage
exit 1
;;
d)
DB_NAME=$OPTARG
;;
o)
NEW_OWNER=$OPTARG
;;
esac
done
if [[ -z $DB_NAME ]] || [[ -z $NEW_OWNER ]]
then
usage
exit 1
fi
for tbl in `psql -U $PGSQL_USER -qAt -c "select tablename from pg_tables where schemaname = 'public';" ${DB_NAME}` \
`psql -U $PGSQL_USER -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" ${DB_NAME}` \
`psql -U $PGSQL_USER -qAt -c "select table_name from information_schema.views where table_schema = 'public';" ${DB_NAME}` ;
do
psql -U $PGSQL_USER -c "alter table \"$tbl\" owner to ${NEW_OWNER}" ${DB_NAME} ;
done
安装组件
客户端安装
sudo apt-get install postgresql-client
服务器安装
sudo apt-get install postgresql postgresql-contrib
获取Installing PostGIS, procedural languages, client interfaces等插件列表
apt-cache search postgres
Ruby PG gem安装,需要生成Native Extension
首先安装相应package
sudo apt-get install libpq-dev
找到pg_config所在位置
sudo find / -name pg_config
安装pg gem
gem install pg -- --with-pg-config=/usr/bin/pg_config
服务器配置
设置postgres用户,用postgres用户登录并修改密码
sudo -u postgres psql postgres
为postgres用户设置密码
\password postgres
创建新数据库
sudo -u postgres createdb mydb
服务器高级设置
创建用户
sudo -u postgres createuser --superuser $USER
sudo -u postgres psql
postgres=# \password $USER
管理用户及权限
编辑/etc/postgresql/current/main/postgresql.conf文件用以监听其它网络
listen_addresses = '*'
创建新用户tesdb及该用户所拥有的数据库testdb
sudo -u postgres createuser -D -A -P testdb
sudo -u postgres createdb -O testdb testdb
编辑/etc/postgresql/current/main/pg_hba.conf文件,允许testdb用户远程连接testdb数据库
host testdb testdb 0.0.0.0/0 md5
重新加载配置
sudo /etc/init.d/postgresql reload
重启数据库
sudo /etc/init.d/postgresql restart
postgresql版本号前面的两个数字是他的大版本号,后面的一个数字是小版本号。大版本号相同的,数据文件格式都完全一样,比如你从8.4.6升级到8.4.7,只需要重新获得8.4.7的二进制文件,替换掉8.4.6的就可以了,因为数据文件一样,可以直接使用而如果从8.4.想升级到9.0版本,数据文件格式变动,上面方法则不适用,数据文件必须经过sql转储才可以继续使用。也可以这样理解,大版本号相当于windows具体的操作系统,而小版本号就是sp几,比如8.4是windowsvista,9.0是windows7,后面的数字则是只是他们的升级包而已。版本之间的具体区别和改动请参看releasenotes,这里有最新的
可以先执行update语句(update的条件是存在的判断条件),然后调用get diagnostics获得上一个SQL语句执行所影响的行数,如果影响行数为0,则说明不存在,那么再执行insert语句。
结构类似:
declare
v_cnt integer;
begin
update .... -- 执行更新语句
where ...; -- 这里的条件是存在的判断条件
get diagnostics v_cnt = row_count; -- 将影响行数的值赋给v_cnt
if v_cnt = 0 then
insert into ...; -- 执行插入语句
end if;
end;
1、首先PostgreSQL是一款开源的数据库管理系统。
2、其次取消之前的更新操作需要关闭PostgreSQL。
3、最后找到设置,在设置里取消之前的更新操作即可。