- 论坛徽章:
- 0
|
谈谈我的对PGSQL的应用好吗???
postgres的外键本身就是考触发器来做的,见一个外键后会自动见一个触发器,当然这个触发器对用户是不可见的!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
不是的外键参考是用系统的触发器,也是系统自动建的。。
tabe
int id 主键
tabe1
uid 外键参考 table(id)
如何你删除table中的记录加提示,你要先删除tabe1 记录。。
我做这样操作时是用触发器过程来做的。。
CREATE OR REPLACE FUNCTION siteuser_id_del_func () RETURNS opaque AS '
-- DECLARE
BEGIN
Delete from company where id = OLD.id;
Delete from link where uid = OLD.id;
Delete from style where uid = OLD.id;
Delete from product_sort where uid = OLD.id;
Delete from news where uid = OLD.id;
Delete from count where uid = OLD.id;
Delete from guestbook where uid = OLD.id;
Delete from indent where uid = OLD.id;
RETURN OLD;
END;
' LANGUAGE 'plpgsql';
DROP TRIGGER siteuser_id_del_tri on siteuser;
CREATE TRIGGER siteuser_id_del_tri
BEFORE Delete
--AFTER Delete
ON siteuser FOR EACH ROW
EXECUTE PROCEDURE siteuser_id_del_func ();
注:还有系统自动建的角发器,是可见。
site=>; \d siteuser;
Table "siteuser"
Column | Type | Modifiers
-------------+--------------------------+---------------------------------------------------
id | integer | not null default nextval('siteuser_id_seq'::text)
username | character varying(20) | not null default '0'
password | character varying(50) | not null default '0'
realname | character varying(10) | not null default '0'
email | character varying(50) | not null default '0'
create_date | timestamp with time zone | default now()
modify_date | timestamp with time zone | default now()
Indexes: siteuser_id_index
Primary key: siteuser_pkey
Unique keys: siteuser_id_key
Triggers: siteuser_id_del_tri,
RI_ConstraintTrigger_18339,
RI_ConstraintTrigger_18341,
RI_ConstraintTrigger_18355,
RI_ConstraintTrigger_18357,
RI_ConstraintTrigger_18393,
RI_ConstraintTrigger_18395,
RI_ConstraintTrigger_18411,
RI_ConstraintTrigger_18413,
RI_ConstraintTrigger_18442,
RI_ConstraintTrigger_18444,
RI_ConstraintTrigger_18484,
RI_ConstraintTrigger_18486,
RI_ConstraintTrigger_18581,
RI_ConstraintTrigger_18583,
RI_ConstraintTrigger_19102,
RI_ConstraintTrigger_19104,
RI_ConstraintTrigger_19141,
RI_ConstraintTrigger_19143,
RI_ConstraintTrigger_19301,
RI_ConstraintTrigger_19303
siteuser_id_del_tri这个是我自己建的。。
其它的确良RI_ConstraintTrigger_xxxx是系统自动建的。。所以我说是可以看到的 |
|