[pgsql-jp: 34829] Re: TRIGGERが消せない

Kuniteru Asami asami @ aqua-systems.co.jp
2005年 2月 7日 (月) 21:39:21 JST


こんばんは、浅見です。

> template1=# CREATE TABLE t1 (id INTEGER, description TEXT);
> CREATE TABLE
> template1=# CREATE TABLE t2 (id INTEGER, description TEXT);
> CREATE TABLE
> 
> このようなテーブルがあるとき、以下のトリガーを定義しました。
> 
> template1=# CREATE CONSTRAINT TRIGGER "<unnamed>"
>....snip....
> template1=# \d t1
>       テーブル "public.t1"
>    カラム    |   型    | 修飾語
> -------------+---------+--------
>  id          | integer |
>  description | text    |
> トリガー:
>     CREATE CONSTRAINT TRIGGER "RI_ConstraintTrigger_17263" AFTER DELETE
> ON t1 FROM t2 NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW 
> EXECUTE PROCEDURE "RI_FKey_noaction_del"('<unnamed>', 't1', 't2', 
> 'UNSPECIFIED', 't2_id', 'T1_id')
> 
> そこでこのトリガーを消そうと
> template1=# DROP TRIGGER RI_ConstraintTrigger_17263 on t1;
> としたところ、
> 
> ERROR:  trigger "ri_constrainttrigger_17263" for table "t1"
> does not exist
>
> と言われてしまい、DROPすることが出来ません。

template1=# DROP TRIGGER "RI_ConstraintTrigger_17263" on t1;
とトリガー名をダブルコーテーションでくくる必要があります。
普通にオブジェクトを作ると小文字に統一されるのですが、オブジェ
クトの作り方によっては大文字が混ざってこうなるんですよね。

0---------0---------0---------0---------0---------0---------0
00 浅見 城輝
0-0 mailto:asami at aqua-systems.co.jp
0--0 http://www.fiberbit.net/user/kunyami/postgresql/




pgsql-jp メーリングリストの案内