Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Ralat \'Unterminated Dollar-Quoted String\' dalam Fungsi PostgreSQL dengan Goose?

Bagaimana untuk Menyelesaikan Ralat \'Unterminated Dollar-Quoted String\' dalam Fungsi PostgreSQL dengan Goose?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-02 15:10:03281semak imbas

How to Resolve

Rentetan Petikan Dolar Tidak Ditamatkan: Menyelesaikan Ralat dengan Titik Titik

Dalam konteks mencipta fungsi PostgreSQL dengan Goose, artikel ini menangani ralat ditemui semasa memproses pernyataan kompleks dalam badan fungsi. Ralat, yang dilaporkan oleh perpustakaan pq, menunjukkan bahawa rentetan petikan dolar kekal tidak ditamatkan.

Untuk menyelesaikan isu ini, ambil perhatian bahawa pernyataan kompleks yang menampilkan koma bertitik memerlukan anotasi menggunakan "-- goose StatementBegin" dan "-- goose Anotasi StatementEnd", mengikut dokumentasi Goose. Anotasi ini membantu Goose dalam mengurus koma bernoktah terbenam dalam pernyataan SQL, menghalang ralat libpq.

Menggunakan anotasi ini pada sampel kod yang disediakan menyelesaikan ralat:

CREATE OR REPLACE FUNCTION add_userlocation(user_id INT, location_id INT) RETURNS VOID AS
$BODY$
-- +goose StatementBegin
BEGIN
    LOOP
        UPDATE userslocations SET count = count+1 WHERE userid = user_id AND locationid = location_id;
    IF found THEN
        RETURN;
    END IF;
    BEGIN
        INSERT INTO userslocations(userid,locationid, count) VALUES (user_id, location_id, 1);
           RETURN;
       EXCEPTION WHEN unique_violation THEN
    END;
   END LOOP;
-- +goose StatementEnd
END;
$BODY$
LANGUAGE plpgsql;

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Unterminated Dollar-Quoted String\' dalam Fungsi PostgreSQL dengan Goose?. 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