Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membuat Jadual Maya dalam PostgreSQL menggunakan `setof record`?

Bagaimana untuk Membuat Jadual Maya dalam PostgreSQL menggunakan `setof record`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 21:18:35143semak imbas

How to Create Virtual Tables in PostgreSQL using `setof record`?

Mencipta Jadual Maya dengan setof rekod dalam PostgreSQL

Artikel ini mendalami tentang mencipta jadual maya menggunakan pendekatan setof rekod dalam PostgreSQL. Jadual maya tidak mempunyai storan data asasnya sendiri; sebaliknya, ia adalah perwakilan data sementara berdasarkan parameter atau pengiraan yang diluluskan.

Untuk mencipta jadual maya yang mengembalikan tiga lajur dan bilangan baris yang tidak diketahui, gunakan fungsi PL/pgSQL berikut:

CREATE OR REPLACE FUNCTION f_foo()
  RETURNS TABLE (a int, b int, c int) AS
$func$
BEGIN
RETURN QUERY VALUES
  (1,2,3)
, (3,4,5)
, (3,4,5)
;
END
$func$  LANGUAGE plpgsql IMMUTABLE ROWS 3;

Fungsi ini menggunakan klausa RETURNS TABLE untuk menentukan jenis baris yang dikembalikan oleh fungsi tersebut. Perintah RETURN QUERY menjana berbilang baris menggunakan ungkapan VALUES. Klausa IMMUTABLE dan ROWS 3 mengoptimumkan fungsi untuk prestasi.

Untuk menggunakan jadual maya, hanya panggil fungsi:

SELECT * FROM f_foo();

Selain itu, anda boleh membina jadual maya menggunakan pernyataan SQL biasa :

VALUES (1,2,3), (3,4,5), (3,4,5)

Untuk kes yang lebih kompleks, tentukan nama lajur dan jenis:

SELECT *
FROM  (
   VALUES (1::int, 2::int, 3::int)
        , (3, 4, 5)
        , (3, 4, 5)
   ) AS t(a, b, c);

Akhir sekali, rangkumkan penciptaan jadual maya ke dalam fungsi SQL:

CREATE OR REPLACE FUNCTION f_foo()
   RETURNS TABLE (a int, b int, c int) AS
$func$
   VALUES (1, 2, 3)
        , (3, 4, 5)
        , (3, 4, 5);
$func$  LANGUAGE sql IMMUTABLE ROWS 3;

Dengan melaksanakan pendekatan ini, anda boleh mencipta jadual maya dalam PostgreSQL dengan berkesan, membolehkan fleksibiliti dan penyesuaian dalam pemprosesan data.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Jadual Maya dalam PostgreSQL menggunakan `setof record`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn