Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta dan Mengembalikan Jadual Maya daripada Fungsi PostgreSQL?

Bagaimana untuk Mencipta dan Mengembalikan Jadual Maya daripada Fungsi PostgreSQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-27 08:33:10340semak imbas

How to Create and Return a Virtual Table from a PostgreSQL Function?

Mengembalikan Jadual Maya daripada Fungsi Postgres

Dalam Postgres, mencipta jadual maya (serupa dengan jadual maya Oracle) boleh dicapai menggunakan sesuatu fungsi. Fungsi ini membolehkan anda mengembalikan jadual tersuai dengan struktur dan kandungan yang ditentukan.

Sintaks Betul

Berikut ialah sintaks yang diperbetulkan untuk fungsi yang anda berikan:

CREATE OR REPLACE FUNCTION "public"."storeopeninghours_tostring" (open_id numeric)
  RETURNS TABLE (a int, b int, c int) AS
DECLARE
  returnrecords RECORD;
BEGIN
  INSERT INTO returnrecords(a, b, c) VALUES (1, 2, 3);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  RETURN TABLE returnrecords;
END;

Kunci Mata

  • JADUAL PEMULANGAN: Menentukan jenis data jadual maya. Dalam kes ini, ia ialah jadual dengan tiga lajur integer bernama a, b dan c.
  • INSERT: Gunakan pernyataan INSERT untuk mengisi jadual maya dengan data.
  • RETURN TABLE: Gunakan RETURN TABLE untuk mengembalikan jadual maya daripada fungsi.

Memanggil Fungsi

Anda kini boleh memanggil fungsi untuk mendapatkan jadual maya:

SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);

Sintaks Alternatif

Dalam Postgres 8.4 atau lebih baru, anda juga boleh menggunakan yang berikut Sintaks PL/pgSQL:

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

Penyelesaian SQL Mudah

Untuk kes mudah seperti ini, anda juga boleh menggunakan pernyataan SQL mudah:

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

Atas ialah kandungan terperinci Bagaimana untuk Mencipta dan Mengembalikan Jadual Maya daripada Fungsi PostgreSQL?. 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