Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

slqlalchemy UniqueConstraint VS Index (unik =Benar)

Perbedaan utama adalah bahwa sementara Index API memungkinkan mendefinisikan indeks di luar definisi tabel selama dapat mereferensikan tabel melalui konstruksi SQL yang diteruskan, UniqueConstraint dan batasan secara umum harus didefinisikan sebaris dalam definisi tabel :

Hal yang perlu dipahami adalah bahwa selama konstruksi kelas deklaratif sebuah Table . baru dibangun, jika tidak lulus __table__ eksplisit . Di kelas model contoh Anda, UniqueConstraint instance terikat ke atribut kelas, tetapi basis deklaratif tidak menyertakan batasan dalam Table yang dibuat contoh dari atribut. Anda harus meneruskannya dalam argumen tabel:

class MyTable(DeclBase):
    __tablename__ = 'my_table'
    ...
    # A positional argument tuple, passed to Table constructor
    __table_args__ = (
        UniqueConstraint(attr_2, attr_3, name='my_table_uidx'),
    )

Perhatikan bahwa Anda harus meneruskan nama batasan sebagai argumen kata kunci. Anda juga dapat melewati batasan menggunakan Table.append_constraint() , jika dipanggil sebelum ada upaya untuk membuat tabel:

class MyTable(DeclBase):
    ...

MyTable.__table__.append_constraint(
    UniqueConstraint('attr_2', 'attr_3', name='my_table_uidx'))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara menampilkan baris tabel sembunyikan html berdasarkan kondisi php

  2. Pernyataan PHP Harus mengembalikan Beberapa objek tetapi hanya mengembalikan satu

  3. Apakah ada perbedaan antara DATE_SUB() dan menggunakan operator aritmatika untuk perhitungan datetime?

  4. kueri untuk tata letak horizontal data mysql

  5. Bagaimana menjalankan file .sql sebagai bagian dari kueri MySQL Workbench 6.2?