<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>江淼的Blog &#187; PostgreSQL</title>
	<atom:link href="http://www.jiangmiao.org/blog/c/programme/postgresql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jiangmiao.org/blog</link>
	<description>简单生活</description>
	<lastBuildDate>Sat, 24 Dec 2011 07:02:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>PostgreSQL 删除所有函数</title>
		<link>http://www.jiangmiao.org/blog/563.html</link>
		<comments>http://www.jiangmiao.org/blog/563.html#comments</comments>
		<pubDate>Fri, 18 Dec 2009 19:08:15 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=563</guid>
		<description><![CDATA[运行命令： SELECT ns.nspname &#124;&#124; '.' &#124;&#124; proname &#124;&#124; '(' &#124;&#124; oidvectortypes(proargtypes) &#124;&#124; ')' FROM pg_proc INNER JOIN pg_namespace AS ns ON (pg_proc.pronamespace = ns.oid) WHERE ns.nspname = 'public' ORDER BY proname; 可以得到所有函数列表 再依次执行DROP FUNCTION 即可。]]></description>
			<content:encoded><![CDATA[<p>运行命令：</p>
<pre lang="pgsql">
SELECT ns.nspname || '.' || proname || '(' || oidvectortypes(proargtypes) || ')'
FROM pg_proc INNER JOIN pg_namespace AS ns ON (pg_proc.pronamespace = ns.oid)
WHERE ns.nspname = 'public' ORDER BY proname;</pre>
<div>可以得到所有函数列表</div>
<div>再依次执行DROP FUNCTION 即可。</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/563.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给PostgreSQL添加MySQL的unix_timestamp与from_unixtime函数</title>
		<link>http://www.jiangmiao.org/blog/430.html</link>
		<comments>http://www.jiangmiao.org/blog/430.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 13:38:52 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=430</guid>
		<description><![CDATA[MySQL的2个常用函数unix_timestamp()与from_unixtime PostgreSQL并不提供，但通过PostgreSQL强大的扩展性可以轻松的解决问题。话说远在天边，尽在眼前，文档看仔细，问题迎仞解。PostgreSQL 题供extract与date_part取epoch即可即 unix_timestamp() = round(date_part(&#8216;epoch&#8217;,now()))from_unixtime(int) = to_timestamp(int) 添加函数unix_timestamp()CREATE FUNCTION unix_timestamp() RETURNS integer AS $$ SELECT (date_part(&#8216;epoch&#8217;,now()))::integer; $$ LANGUAGE SQL IMMUTABLE; 添加函数from_unixtime()CREATE FUNCTION from_unixtime(int) RETURNS timestamp AS $$ SELECT to_timestamp($1)::timestamp; $$ LANGUAGE SQL IMMUTABLE;]]></description>
			<content:encoded><![CDATA[<p>MySQL的2个常用函数unix_timestamp()与from_unixtime PostgreSQL并不提供，但通过PostgreSQL强大的扩展性可以轻松的解决问题。<br />话说远在天边，尽在眼前，文档看仔细，问题迎仞解。PostgreSQL 题供extract与date_part取epoch即可<br />即 <br />unix_timestamp() = round(date_part(&#8216;epoch&#8217;,now()))<br />from_unixtime(int) = to_timestamp(int)</p>
<p>添加函数unix_timestamp()<br />CREATE FUNCTION unix_timestamp() RETURNS integer AS $$ <br />SELECT (date_part(&#8216;epoch&#8217;,now()))::integer; <br />$$ LANGUAGE SQL IMMUTABLE;</p>
<p>添加函数from_unixtime()<br />CREATE FUNCTION from_unixtime(int) RETURNS timestamp AS $$ <br />SELECT to_timestamp($1)::timestamp; <br />$$ LANGUAGE SQL IMMUTABLE;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/430.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>放弃MySQL是正确的选择</title>
		<link>http://www.jiangmiao.org/blog/411.html</link>
		<comments>http://www.jiangmiao.org/blog/411.html#comments</comments>
		<pubDate>Tue, 21 Apr 2009 09:40:36 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[闲聊]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=411</guid>
		<description><![CDATA[前不久因IBM要收购Sun而转用PostgreSQL，没想到Sun被Oracle收购了。这下MySQL的前途就更加暗淡了。 加之PostgreSQL越发熟悉，越来越喜欢了。]]></description>
			<content:encoded><![CDATA[<p>前不久因IBM要收购Sun而转用PostgreSQL，没想到Sun被Oracle收购了。这下MySQL的前途就更加暗淡了。</p>
<p>加之PostgreSQL越发熟悉，越来越喜欢了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/411.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>很麻烦,PostgreSQL不支持integer到boolean的转换</title>
		<link>http://www.jiangmiao.org/blog/406.html</link>
		<comments>http://www.jiangmiao.org/blog/406.html#comments</comments>
		<pubDate>Sun, 05 Apr 2009 10:49:58 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=406</guid>
		<description><![CDATA[如数据库test拥有字段banned boolean  使用命令insert into test(banned) values (0) 返回为   ERROR:  column &#8220;banned&#8221; is of type boolean but expression is of type integer LINE 1: insert into test(banned) values(0)很是不方便。用cast也没用 难到只能用规定的 TRUE,&#8217;t',&#8217;true&#8217;,'y&#8217;,'yes&#8217;,&#8217;1&#8242;吗？ 但奇怪的是select 0::boolean支能显示false]]></description>
			<content:encoded><![CDATA[<p>如数据库test拥有字段<br />banned boolean </p>
<p>使用命令<br />insert into test(banned) values (0)</p>
<p>返回为</p>
<p> </p>
<p>ERROR:  column &#8220;banned&#8221; is of type boolean but expression is of type integer</p>
<p>LINE 1: insert into test(banned) values(0)<br />很是不方便。用cast也没用 <br />难到只能用规定的 TRUE,&#8217;t',&#8217;true&#8217;,'y&#8217;,'yes&#8217;,&#8217;1&#8242;吗？</p>
<p>但奇怪的是select 0::boolean支能显示false</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/406.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PostgreSQL like无法使用索引</title>
		<link>http://www.jiangmiao.org/blog/404.html</link>
		<comments>http://www.jiangmiao.org/blog/404.html#comments</comments>
		<pubDate>Wed, 01 Apr 2009 17:59:40 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=404</guid>
		<description><![CDATA[使用 like 进行查询 如 explain select* from titles where title like &#8216;h%&#8217;  一直显示 Seq Scan。 google+百度后，得知要设定locale为C才能使用like。 使用命令 initdb &#8211;local=C -D 集群路径 建立新的集群]]></description>
			<content:encoded><![CDATA[<p>使用 like 进行查询 如 explain select* from titles where title like &#8216;h%&#8217;  一直显示 Seq Scan。 google+百度后，得知要设定locale为C才能使用like。</p>
<p>使用命令 initdb &#8211;local=C -D 集群路径 建立新的集群</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/404.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PostgreSQL 触发器(Trigger) 使用</title>
		<link>http://www.jiangmiao.org/blog/395.html</link>
		<comments>http://www.jiangmiao.org/blog/395.html#comments</comments>
		<pubDate>Wed, 01 Apr 2009 09:11:37 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=395</guid>
		<description><![CDATA[目标：当表alphas插入新行时，更新titles的alpha_at为NOW()当表alphas删除行时，更新titles的alpha_at为NULL 1、安装plpgsql语言到数据库 createlang plpgsql DATABASE 2、建立一个返回为trigger的过程 CREATE OR REPLACE FUNCTION after_alphas_id() RETURNS trigger AS $BODY$ BEGIN IF( TG_OP='DELETE' ) THEN UPDATE titles SET alpha_at=null WHERE id=OLD.title_id; ELSE UPDATE titles SET alpha_at=NOW() WHERE id=NEW.title_id; END IF; RETURN NULL; END; $BODY$ LANGUAGE &#8230; <a href="http://www.jiangmiao.org/blog/395.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>目标：<br />当表alphas插入新行时，更新titles的alpha_at为NOW()<br />当表alphas删除行时，更新titles的alpha_at为NULL</p>
<p>1、安装plpgsql语言到数据库
<pre>createlang plpgsql DATABASE</pre>
<p>2、建立一个返回为trigger的过程
<pre>
CREATE OR REPLACE FUNCTION after_alphas_id() RETURNS trigger AS $BODY$
BEGIN
  IF( TG_OP='DELETE' ) THEN
    UPDATE titles SET alpha_at=null WHERE id=OLD.title_id;
  ELSE
    UPDATE titles SET alpha_at=NOW() WHERE id=NEW.title_id;
  END IF;
  RETURN NULL;
END;

$BODY$
  LANGUAGE 'plpgsql';
</pre>
<p>3、创建触发器
<pre>
CREATE TRIGGER after_alphas_id
  AFTER INSERT OR DELETE
  ON alphas
  FOR EACH ROW
  EXECUTE PROCEDURE after_alphas_id();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/395.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开始使用PostgreSQL代替MySQL</title>
		<link>http://www.jiangmiao.org/blog/390.html</link>
		<comments>http://www.jiangmiao.org/blog/390.html#comments</comments>
		<pubDate>Tue, 31 Mar 2009 21:49:20 +0000</pubDate>
		<dc:creator>JiangMiao</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[闲聊]]></category>

		<guid isPermaLink="false">http://www.jiangmiao.org/blog/?p=390</guid>
		<description><![CDATA[最近IBM要收购Sun,Sun在早先日子收购了MySQL，但并没给MySQL注入多少活力。MySQL的前景仍是个未知数。遂决定开始使用PostgreSQL。]]></description>
			<content:encoded><![CDATA[<p>最近IBM要收购Sun,Sun在早先日子收购了MySQL，但并没给MySQL注入多少活力。MySQL的前景仍是个未知数。遂决定开始使用PostgreSQL。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jiangmiao.org/blog/390.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

