Stored Procedure with WHERE .. IN array parameter



  • I want to set a boolean on every entry in a table matching an array of row ids passed into a stored procedure. Help me crack the proper syntax to accomplish this? The following is as close as I've gotten.

    CREATE PROCEDURE tester (id_list bigint[])
    AS
    $$
    UPDATE some_table
    SET touched = true
    WHERE id IN (unnest(id_list));
    $$ LANGUAGE sql;
    

    CALL tester(ARRAY[12, 34]);



  • Use the ANY operator:

    UPDATE some_table
      SET touched = true
    WHERE id = ANY (id_list);
    



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2