Re: Please help me to take a look of the erros in my functions. Thanks.
От | leaf_yxj |
---|---|
Тема | Re: Please help me to take a look of the erros in my functions. Thanks. |
Дата | |
Msg-id | 33b155bf.b60c.1367957abf3.Coremail.leaf_yxj@163.com обсуждение исходный текст |
Ответ на | Re: Re: Please help me to take a look of the erros in my functions. Thanks. (Bartosz Dmytrak <bdmytrak@gmail.com>) |
Ответы |
Re: Re: Please help me to take a look of the erros in my
functions. Thanks.
|
Список | pgsql-general |
Hi Bartek
One more question, In oracle, when you create table using the default option, the parent table can't be delete if there is any child table exist. Usually, I won't use the cascade option. I will truncate or delete one by one. what is postgresql default for these???
One more question, In oracle, when you create table using the default option, the parent table can't be delete if there is any child table exist. Usually, I won't use the cascade option. I will truncate or delete one by one. what is postgresql default for these???
Thanks.
Regards.
Grace
One more thing:TRUNCATE has option CASCASE:I don't remember since when, but 9.X has this option.Another thing: Do You really need this function.....AFAIK since 8.4 postgres has TRUNCATE privilage on Tablethis is not the same as DELETE so, I think it is enough to grant this privilage to user
Regards,
Bartek2012/4/3 leaf_yxj <[hidden email]>Tom,
Thanks. I found out the key issue it. It's because the truncate command
can't have the "cascade".
For the other people reference. The right funcitons are :EXECUTE 'TRUNCATE TABLE ' || quote_ident(tablename) || ';';
***********************************************************
CREATE OR REPLACE FUNCTION truncate_t (IN tablename text)
RETURNS VOID
AS
$$
BEGINEXCEPTION
WHEN undefined_table THEN
RAISE EXCEPTION 'Table "%" does not exists', tablename;END;***********************************************************
$$
LANGUAGE plpgsql SECURITY DEFINER STRICT;
***********************************************************
CREATE OR REPLACE FUNCTION truncate_t (tablename text)RETURNS VOIDEXECUTE 'TRUNCATE TABLE ' || quote_ident(tablename) || ';';
AS
$$
BEGINEXCEPTION
WHEN undefined_table THEN
RAISE EXCEPTION 'Table "%" does not exists', tablename;END;usage : select truncate_t ('aaa');
$$
LANGUAGE plpgsql SECURITY DEFINER STRICT;
***********************************************************
Thanks everybody's help.
Regards.
Grace
--
View this message in context: http://postgresql.1045698.n5.nabble.com/Please-help-me-to-take-a-look-of-the-erros-in-my-functions-Thanks-tp5613507p5615529.htmlSent from the PostgreSQL - general mailing list archive at Nabble.com.--
Sent via pgsql-general mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-generalIf you reply to this email, your message will be added to the discussion below:http://postgresql.1045698.n5.nabble.com/Please-help-me-to-take-a-look-of-the-erros-in-my-functions-Thanks-tp5613507p5615860.htmlTo unsubscribe from Please help me to take a look of the erros in my functions. Thanks., click here.
NAML
View this message in context: Re:Re: Please help me to take a look of the erros in my functions. Thanks.
Sent from the PostgreSQL - general mailing list archive at Nabble.com.
В списке pgsql-general по дате отправления: