PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Мога ли да „прекомпилирам“ таблица, връщаща функции, след като тази таблица е ALTER-ed по време на миграцията на база данни?

търсихте това DO изявление:

CREATE TABLE p1(a INT, b TEXT);

CREATE OR REPLACE FUNCTION authenticate() RETURNS SETOF p1 as '
DECLARE
    player_row p1;
BEGIN

    -- query is more complicated but always returns zero or one rows
    SELECT p.* INTO player_row
    FROM p1 p;

    IF FOUND THEN
        RETURN NEXT player_row;

        -- more code in here..
    END IF;

    RETURN;
END;' LANGUAGE plpgsql ROWS 1;

ALTER TABLE p1 ADD COLUMN c VARCHAR(2);
INSERT INTO p1 VALUES(1,'a', 'c');

do $$ begin execute pg_get_functiondef('authenticate'::regproc); end; $$;

SELECT * FROM AUTHENTICATE();

но както подсказва a_horse_with_no_name, можете просто \c за да се свържете отново с psql




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Данните в solr поддържат ли се от postgres в ckan

  2. Как да получите деня на годината от дата в PostgreSQL

  3. Как да направя заявка, използвайки полета в новия PostgreSQL JSON тип данни?

  4. завъртане/кръстосване на данни от различни редове към колони с postgres

  5. PostgreSQL - ФАТАЛНО:Неуспешно удостоверяване на идентификация за потребител myuser