sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL dynamisk tabellåtkomst

OK, jag hittade en lösning:

CREATE OR REPLACE FUNCTION getProductById(cid int) RETURNS RECORD AS $$
    DECLARE
    result RECORD;

    BEGIN
        EXECUTE 'SELECT * FROM ' || (SELECT ('products.' || (select category_name from category where category_id = cid) || '_view')::regclass) INTO result;

        RETURN result;
    END;
$$ LANGUAGE plpgsql;

och för att välja:

SELECT * FROM getProductById(7) AS b (category_id int, ... );

fungerar för PostgreSQL 9.x



  1. Fatalt fel:Anrop till odefinierad funktion getsqlvaluestring()

  2. Unicode SQL Query W/ Parameter istället N Prefix

  3. MariaDB LTRIM() vs LTRIM_ORACLE():Vad är skillnaden?

  4. Vad är definitionen av kardinalitet i SQL