Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencipta Fungsi Postgres yang Mengembalikan Jadual Maya?

Bagaimanakah Saya Boleh Mencipta Fungsi Postgres yang Mengembalikan Jadual Maya?

Linda Hamilton
Lepaskan: 2025-01-04 04:20:39
asal
219 orang telah melayarinya

How Can I Create a Postgres Function That Returns a Virtual Table?

Mengembalikan Jadual Maya daripada Fungsi dalam Postgres

Seseorang boleh mencipta fungsi Postgres yang mengembalikan jadual maya dengan skema tersuai. Struktur jadual jenis ini terdiri daripada bilangan lajur dan baris yang berbeza.

Sintaks Fungsi PL/pgSQL

Untuk versi PL/pgSQL moden (PostgreSQL 8.4 dan ke atas) , inilah sintaks:

CREATE OR REPLACE FUNCTION function_name()
  RETURNS TABLE (column1 data_type, column2 data_type, column3 data_type) AS
$func$
BEGIN
  RETURN QUERY VALUES
  (value1, value2, value3),
  (value4, value5, value6);

END;
$func$  LANGUAGE plpgsql IMMUTABLE ROWS number_of_rows;
Salin selepas log masuk

Perkara Penting:

  • Gunakan RETURNS TABLE untuk menentukan jenis baris tersuai.
  • Gunakan RETURN QUERY NILAI untuk isikan jadual.
  • Gunakan VALUES untuk memasukkan berbilang baris secara manual.
  • Laraskan bilangan_baris mengikut saiz jadual yang diketahui.
  • Alih keluar petikan berganda daripada pengecam undang-undang, kecuali untuk kes khas.
  • Tetapkan turun naik kepada TIDAK BOLEH DIUBAH jika hasilnya tidak pernah perubahan.

Fungsi SQL Sintaks

Untuk kes mudah, gunakan fungsi SQL ini:

CREATE OR REPLACE FUNCTION function_name()
RETURNS TABLE (column1 data_type, column2 data_type, column3 data_type) AS
$func$
SELECT *
FROM (
  VALUES
    (value1, value2, value3),
    (value4, value5, value6)
) AS table_name(column1, column2, column3);

$func$  LANGUAGE sql IMMUTABLE ROWS number_of_rows;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Fungsi Postgres yang Mengembalikan Jadual Maya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan