Hi,
I have created a database and all tables with a user, but I can't
execute this alter table:
[code]
xxx_database=> ALTER TABLE tdir_categories DISABLE TRIGGER ALL;
ERROR: permission denied: "RI_ConstraintTrigger_25366" is a system trigger
[/code]
What can I do to solve this?
Best Regards,
On Tue, Oct 18, 2011 at 9:08 AM, Craig Ringer <ringerc@ringerc.id.au> wrote:
> On 10/18/2011 03:52 PM, Andre Lopes wrote:
>>
>> Hi,
>>
>> I have created a database that have a function that disable triggers
>> on tables, but when I execute the function: (I have created the
>> database with the same user that I'm trying to execute the function)
>>
>> [code]
>> select triggerall(false);
>> [/code]
>>
>> return
>>
>> [code]
>> ERROR: permission denied: "RI_ConstraintTrigger_24966" is a system
>> trigger
>> CONTEXT: SQL statement "ALTER TABLE tdir_languages DISABLE TRIGGER ALL"
>> PL/pgSQL function "triggerall" line 14 at EXECUTE statement
>> [/code]
>
> You're trying to disable triggers associated with foreign key constraints or
> CHECK constraints, too. You should probably skip those system triggers in
> your function.
>
> If you want to disable them too, I think you have to be the table owner, or
> maybe superuser; I don't remember and haven tested. In any case, the user
> you're running as doesn't have permission to disable those.
>
> --
> Craig Ringer
>