Ralat yang disediakan: "ERROR: 42601: senarai definisi lajur diperlukan untuk fungsi mengembalikan "rekod"" yang biasanya berlaku semasa membuat Fungsi PostgreSQL yang cuba mengembalikan rekod tanpa mentakrifkan struktur lajur secara eksplisit.
Untuk menyelesaikan ralat ini, gunakan sintaks RETURNS TABLE untuk menentukan struktur data yang dikembalikan oleh fungsi. Berikut ialah contoh:
CREATE OR REPLACE FUNCTION get_user_by_username( username VARCHAR(250), online BOOLEAN ) RETURNS TABLE ( user_id INTEGER, user_name VARCHAR(250), last_activity TIMESTAMP ) AS $$ ...
Dalam contoh ini, fungsi get_user_by_username mengembalikan jadual dengan tiga lajur: user_id, user_name dan last_activity.
Sebagai alternatif, anda boleh nyatakan lajur khusus yang dikembalikan oleh fungsi menggunakan RETURNS SETOF seperti berikut:
CREATE OR REPLACE FUNCTION get_user_by_username( username VARCHAR(250), online BOOLEAN ) RETURNS SETOF ( user_id INTEGER, user_name VARCHAR(250), last_activity TIMESTAMP ) AS $$ ...
Berikut ialah beberapa pertimbangan tambahan yang perlu diingat:
Atas ialah kandungan terperinci Mengapa PostgreSQL Throw Ralat 42601: 'senarai definisi lajur diperlukan untuk fungsi mengembalikan 'rekod''?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!