PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để khai báo các biến cục bộ trong postgresql?

Trước đây, Postgresql không hỗ trợ mã thủ tục ở cấp lệnh - chỉ trong các hàm. Tuy nhiên, trong Postgresql 9, hỗ trợ đã được thêm vào để thực thi một khối mã nội tuyến hỗ trợ hiệu quả một cái gì đó như thế này, mặc dù cú pháp có lẽ hơi kỳ quặc và có nhiều hạn chế so với những gì bạn có thể làm với SQL Server. Đáng chú ý, khối mã nội tuyến không thể trả về tập hợp kết quả, vì vậy không thể được sử dụng cho những gì bạn phác thảo ở trên.

Nói chung, nếu bạn muốn viết một số mã thủ tục và nó trả về kết quả, bạn cần phải đặt nó bên trong một hàm. Ví dụ:

CREATE OR REPLACE FUNCTION somefuncname() RETURNS int LANGUAGE plpgsql AS $$
DECLARE
  one int;
  two int;
BEGIN
  one := 1;
  two := 2;
  RETURN one + two;
END
$$;
SELECT somefuncname();

Giao thức dây PostgreSQL, theo như tôi biết, không cho phép những thứ như lệnh trả về nhiều tập kết quả. Vì vậy, bạn không thể chỉ ánh xạ các lô T-SQL hoặc các thủ tục được lưu trữ với các hàm PostgreSQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT [...] ON CONFLICT có thể được sử dụng cho các vi phạm khóa ngoại không?

  2. Làm thế nào để so sánh dữ liệu giữa hai cơ sở dữ liệu trong PostgreSQL?

  3. Làm thế nào để đặt lại trình tự trong postgres và điền vào cột id bằng dữ liệu mới?

  4. Rails:Cài đặt PG gem trên OS X - không tạo được phần mở rộng gốc

  5. Tại sao giá trị NULL lại xuất hiện đầu tiên khi đặt hàng DESC trong một truy vấn PostgreSQL?