sql >> Databáze >  >> RDS >> PostgreSQL

Deklarujte proměnnou typu řádku v PL/pgSQL

Jeden způsob:použijte record proměnná:

DO $$
DECLARE
   _rec record;
BEGIN
SELECT INTO _rec
            id, name, surname FROM t WHERE id = ?;
END $$;

Všimněte si, že struktura record typ není definován, dokud není přiřazen. Předtím tedy nemůžete odkazovat na sloupce (pole).

Další způsob:přiřazení více skalárních proměnných:

DO $$
DECLARE
   _id int;
   _name text;
   _surname text;
BEGIN
SELECT INTO _id, _name, _surname
             id,  name,  surname FROM t WHERE id = ?;
END $$;

Jako pro váš první příklad:%ROWTYPE je v Postgresu jen hluk. Dokumentace :

Takže:

DO $$
DECLARE
   my_data t;  -- table name serves as type name, too. 
BEGIN
   SELECT INTO my_data  * FROM t WHERE id = ?;
END $$;



  1. Jak mohu získat přístup k příkazovému řádku MySQL pomocí XAMPP pro Windows?

  2. CONV() – Převod čísel mezi různými bázemi v MySQL

  3. Jak (tiše) odinstalovat MySQL na 32 a 64bitových Windows

  4. Django/Python:Aktualizujte vztah k bodu v nastavení.AUTH_USER_MODEL