随笔分类 -  PostgreSQL

摘要:在一台 Debian Linux 6.0 + Postgresql 9.0.x 服务器上,安装 uuid-ossp :psql -d sedb -U postgres -f /opt/postgres/9.0/share/postgresql/contrib/uuid-ossp.sql 结果出错了。我忘了把报错信息保存下来了,大致是这个样子的:ERROR: could not access file “$libdir/uuid-ossp”: No such file or directory ... 分析问题:这台服务器的 Postgresql 是用.deb包默认安装的。在 /opt/post 阅读全文

posted @ 2011-05-24 16:16 Yaping Xin 阅读(2257) 评论(0) 推荐(0)

摘要:默认安装的 Postgresql 是不带 UUID 函数的,为了生成一个 UUID,我们不得不在客户端生成。其实在 Postgresql 的安装目录下已经存在这样的函数定义,我们只需将其 import 进来即可。在安装目录的 share/contrib 下面,可以找到 uuid-ossp.sql,使用以下命令:psql -d pisces -U postgres -f D:\Service\PostgreSQL\9.0\share\contrib\uuid-ossp.sql参数说明:-d: 数据库名-U: 用户名-f: 要import的文件以下截屏说明导入正确:然后我们可以尝试用导入的函数生成 阅读全文

posted @ 2011-04-26 18:40 Yaping Xin 阅读(13545) 评论(0) 推荐(0)

摘要:环境:Debian 6.0.0 + Postgresql 8.4.7Postgresql 是用 dpkg -i 命令默认安装的,其余安装方式的文件路径可能会不同。如果找不到配置文件请用 find / -name "..." 查找。一、编辑 pg_hba.conf,配置用户的访问权限vi /etc/postgresql/8.4/main/pg_hba.conf如下:# "local" is for Unix domain socket connections onlylocal all all ident# IPv4 local connections:h 阅读全文

posted @ 2011-04-15 14:35 Yaping Xin 阅读(3989) 评论(0) 推荐(0)

摘要:环境:PostgreSQL 8.4.7直接贴代码,不解释:CREATE or Replace FUNCTION func_task_get_devicerule_devicelist( mf_comp integer, mf_id integer, md_comp integer, md_id integer, sdk_comp integer, sdkv integer)RETURNS setof view_device_alive AS $funcbody$Declare queryString varchar(260);Begin queryString := func_task_get 阅读全文

posted @ 2011-03-26 13:41 Yaping Xin 阅读(619) 评论(0) 推荐(0)

摘要:我的数据库版本是 PostgreSQL 8.4.7 。下面是出错的存储过程:CREATE or Replace FUNCTION func_getnextid( tablename varchar(240), idname varchar(20) default 'id')RETURNS integer AS $funcbody$Declare sqlstring varchar(240); currentId integer;Begin sqlstring:= 'select max("' || idname || '") into 阅读全文

posted @ 2011-03-24 11:33 Yaping Xin 阅读(5790) 评论(0) 推荐(0)

摘要:创建用户自定义函数或者存储过程,这种事在SQL Server下面我们已经司空见惯了。但是在Postgresql下,我们还是要熟悉一下PL/pgSQL的语法。相关表结构:写一个Function来插入suiteId和caseId,保证这两个Id都能正确关联到TestSuite表和TestCase表:Create or Replace function func_TestSuite_AddTestCase(sid INTEGER, cid INTEGER) returns INTEGER as $funcbody$Declare checker BOOLEAN;Declare cnt INTEGER 阅读全文

posted @ 2011-03-23 00:34 Yaping Xin 阅读(873) 评论(0) 推荐(0)

摘要:环境:Debian Linux 5.0 + Postgresql 8.4.7 + phpPgAdmin / pgAdmin III假设有一个这样的表:现在我们希望创建一个触发器,使得每次该表有新数据 insert 进来的时候,或者 uid、gid 被 update 的时候,uptime 自动变更为当前时间。预备工作:首先确保我们的数据库上已经安装了 plpgsql 语言。我们随后将用这种SQL语言来编写用户自定义函数和触发器。在每个Postgresql的实例中,语言的安装是基于每一个数据库的。假设我们的数据库名称为“sedb”,在shell下执行:createlang plpgsql sedb 阅读全文

posted @ 2011-03-21 09:16 Yaping Xin 阅读(5309) 评论(0) 推荐(0)