Re: Calling Postgresql Function to delete user data
От | Philip Couling |
---|---|
Тема | Re: Calling Postgresql Function to delete user data |
Дата | |
Msg-id | 4F37B85C.70000@pedal.me.uk обсуждение исходный текст |
Ответ на | Calling Postgresql Function to delete user data (Rehan Saleem <pk_rehan@yahoo.com>) |
Список | 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.
В списке pgsql-sql по дате отправления: