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

PostgreSQL:Làm thế nào để triển khai cardinality tối thiểu?

Không có cách nào để xác định điều này bằng cách sử dụng ràng buộc KIỂM TRA, vì vậy tôi nghĩ cách tiếp cận tốt nhất là một trình kích hoạt:

http://www.postgresql.org/docs/9.1/static /sql-createtrigger.html
http://www.postgresql.org/docs /9.1/static/plpgsql-trigger.html

Bạn sẽ kết thúc với một cái gì đó như (Tôi chưa thử nghiệm nó hoặc bất cứ điều gì):

CREATE TRIGGER at_least_one before INSERT, UPDATE, DELETE ON the_one_table  FOR EACH ROW EXECUTE PROCEDURE check_at_least_one();

CREATE OR REPLACE FUNCTION check_at_least_one() RETURNS trigger AS $$
    BEGIN
    nmany := select count(*) from the_many_table where the_many_table.the_one_id=NEW.id;   
    IF nmany > 0 THEN 
        RETURN NEW;
    END IF;
    RETURN NULL;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Regex loại bỏ tất cả các lần xuất hiện của nhiều ký tự trong một chuỗi

  2. Postgres:Sắp xếp theo cột chuỗi với các giá trị đã biết

  3. Lưu cơ sở dữ liệu trên ổ cứng ngoài

  4. PostgreSQL / performance một con trỏ chung hoặc tạo cho mọi truy vấn

  5. Nhiều lệnh gọi array_agg () trong một truy vấn