Sử dụng Raw SQL, Function & Procedure trong PostgreSQL
PostgreSQL là cơ sở dữ liệu quan hệ mạnh mẽ hỗ trợ hệ thống các hàm tự định nghĩa User Defined Function (UDF) và Stored Procedure phong phú. Khi làm việc với PostgreSQL mà không thông qua Entity, bạn sẽ dùng đối tượngDataSource kết hợp với cú pháp SQL đặc trưng của Postgres.
Dưới đây là hướng dẫn chi tiết cách viết prompt để Claude Code sinh mã nguồn và thực thi các câu lệnh này trong NestJS thông qua lớp DataSource.
1. Gọi Database Function và Stored Procedure trong PostgreSQL
PostgreSQL phân biệt rõ ràng giữa Function (Hàm - trả về dữ liệu) và Procedure (Thủ tục - không trả về dữ liệu trực tiếp). Cách gọi của hai đối tượng này dưới mã nguồn hoàn toàn khác nhau:- Hàm (Database Function - tạo bằng
CREATE FUNCTION): Sử dụng lệnhSELECTđể kích hoạt (kể cả khi hàm thực hiện logic cập nhật dữ liệuUPDATEbên trong). - Thủ tục (Stored Procedure - tạo bằng
CREATE PROCEDURE): Sử dụng từ khóaCALLđể kích hoạt.
2. Thực thi ghi dữ liệu thuần túy (INSERT, UPDATE, DELETE)
PostgreSQL sử dụng ký tự giữ chỗ dạng$1, $2, $3… làm tham số truyền tin an toàn. Ngoài ra, PostgreSQL hỗ trợ từ khóa RETURNING giúp bạn lấy về các dữ liệu của dòng vừa ghi một cách nhanh chóng mà không cần chạy thêm lệnh SELECT phụ.