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

Khai báo SQLAlchemy:xác định trình kích hoạt và chỉ mục (Postgres 9)

Chỉ định được chuyển tiếp để tạo. Đối với cột đơn có index=True tham số như dưới đây:

customer_code = Column(Unicode(15),unique=True,index=True)

Nhưng nếu bạn muốn kiểm soát nhiều hơn đối với tên và các tùy chọn, hãy sử dụng cấu trúc Index () rõ ràng:

Index('customers_search_vector_indx', Customer.__table__.c.search_vector, postgresql_using='gin')

Trình kích hoạt cũng có thể được tạo, nhưng chúng vẫn cần phải là SQL dựa trên và kết nối với DDL sự kiện. Xem Tùy chỉnh DDL để biết thêm thông tin, nhưng mã có thể trông giống như sau:

from sqlalchemy import event, DDL
trig_ddl = DDL("""
    CREATE TRIGGER customers_search_vector_update BEFORE INSERT OR UPDATE
    ON customers
    FOR EACH ROW EXECUTE PROCEDURE
    tsvector_update_trigger(search_vector,'pg_catalog.english',customer_code,customer_name);
""")
tbl = Customer.__table__
event.listen(tbl, 'after_create', trig_ddl.execute_if(dialect='postgresql'))

Chú thích bên lề:Tôi không biết cách định cấu hình tsvector datatype:xứng đáng là một câu hỏi riêng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL INSERT ON CONFLICT UPDATE (upert) sử dụng tất cả các giá trị bị loại trừ

  2. PG ::InvalidParameterValue:ERROR:giá trị không hợp lệ cho tham số client_min_messages:hoảng sợ

  3. gem install pg --with-pg-config hoạt động, gói không thành công

  4. Hiệu suất của chuỗi và chuỗi trong Postgres-XL

  5. khởi động postgresql và pgadmin trong windows mà không cần cài đặt