Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8111809
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T02:15:20+00:00 2026-06-06T02:15:20+00:00

I am just starting out on functions in PostgreSQL, and this is probably pretty

  • 0

I am just starting out on functions in PostgreSQL, and this is probably pretty basic, but how is this done?

I would like to be able to use the following in a function:

PERFORM id_exists();
IF FOUND THEN
   -- Do something
END IF;

where the id_exists() function (to be used with SELECT and PERFORM) is:

CREATE OR REPLACE FUNCTION id_exists() RETURNS int AS $$
DECLARE
  my_id int;
BEGIN
  SELECT id INTO my_id
  FROM tablename LIMIT 1;
  RETURN my_id;
END;
$$ LANGUAGE plpgsql;

Currently, even when my_id does not exist in the table, FOUND is true, presumably because a row is still being returned (a null integer)? How can this be re-written so that an integer is returned if found, otherwise nothing at all is?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-06T02:15:21+00:00Added an answer on June 6, 2026 at 2:15 am

    Your assumption is correct, FOUND is set to TRUE if the last statement returned a row, regardless of the value (may be NULL in your case). Details in the manual here.

    Rewrite to, for instance:

    IF id_exists() IS NOT NULL THEN
       -- Do something
    END IF;
    

    Or rewrite the return value of your function with SETOF so it can return multiple rows – or no row! Use RETURN QUERY like I demonstrate. You can use this function in your original setting.

    CREATE OR REPLACE FUNCTION id_exists()
      RETURNS SETOF int LANGUAGE plpgsql AS
    $BODY$
    BEGIN
      RETURN QUERY
      SELECT id
      FROM   tablename
      LIMIT  1;
    END;
    $BODY$;
    

    Or, even simpler with a language SQL function:

    CREATE OR REPLACE FUNCTION id_exists()
      RETURNS SETOF int LANGUAGE sql AS
    $BODY$
      SELECT id
      FROM   tablename
      LIMIT  1;
    $BODY$;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Just starting out, this should be a simple one but I haven't been able
Only just starting out with jQuery and I'm sure this is basic stuff for
I am just starting out with Objective-C but have done a bunch of C++.
I'm just starting out with Ruby/Rails and am wondering what Rails developers use to
Just starting out with C#, so this may be overly simple that I keep
I'm just starting out on my first 'real' cocoa app. Note that this is
Just starting out with LINQ to SQL (you can probably tell - be gentle).
I am just starting out with canvas. I made this: http://www.kingoslo.com/instruments/ The arrow for
I am starting out with xml and vb.net here, my xml looks like this:
Just starting out with jQuery and this problem seems to be impossible to me.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.