From: | Philip Couling <phil(at)pedal(dot)me(dot)uk> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Calling Postgresql Function to delete user data |
Date: | 2012-02-12 13:02:20 |
Message-ID: | 4F37B85C.70000@pedal.me.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 11/02/2012 19:53, Rehan Saleem wrote:
> Hi ,
> I have created this function to remove UserDataAccountid
> from both tables
> UserAccountDetails and UserAC
> CREATE OR REPLACE FUNCTION DeleteUserData(ACDetailsID int[])
> RETURNS void AS $$
> DECLARE _id int;
> BEGIN
> -- postgresql has no table type, use a int array instead
> FOR _id IN array_lower(ACDetailsID,1) .. array_upper(ACDetailsID,1)
> LOOP
> DELETE FROM UserAccountDetails WHERE UserDataAcountId=
> _id;
> DELETE FROM UserAC WHERE UserDataAcountId= _id;
> END;
> END LOOP;
> EXCEPTION WHEN OTHERS THEN
> RAISE WARNING 'some issue %', SQLERRM;
> END;
> $$ LANGUAGE plpgsql;
>
> Now I am calling this function to delete userdataacountid
> from both tables, say i have a user with userdataacountid '5', how can i delete
> this user by calling this function , i have tried
>
> select DeleteUserData(5);
> and
> select * from DeleteUserData(5);
>
> its not working ,
> thanks
I would guess that the error you're getting is:
ERROR: function deleteuserdata(integer) does not exist
LINE 1: select DeleteUserData(5);
^
This is happening because your function takes an array, not a single
integer. PostgreSQL can automatically cast from a string to an array if
the string is properly formatted:
select DeleteUserData('{5}');
Hope this helps.
From | Date | Subject | |
---|---|---|---|
Next Message | John Fabiani | 2012-02-13 15:46:31 | foreign key is it a real key |
Previous Message | Rehan Saleem | 2012-02-11 19:53:37 | Calling Postgresql Function to delete user data |