PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Batasan unik pada beberapa tabel

Anda bisa mencoba yang berikut ini. Anda harus membuat batasan UNIK yang berlebihan pada (id, aId) di Induk (SQL cukup bodoh bukan?!).

CREATE TABLE Child
(parentId INTEGER NOT NULL,
 aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);

Mungkin solusi yang jauh lebih baik adalah dengan menghapus parentId dari tabel Anak sama sekali, tambahkan bId sebagai gantinya dan cukup referensikan tabel Induk berdasarkan (aId, bId) :

CREATE TABLE Child
(aId INTEGER NOT NULL UNIQUE,
 bId INTEGER NOT NULL,
FOREIGN KEY (aId,bId) REFERENCES Parent (aId,bId),
createdOn TIMESTAMP NOT NULL);

Apakah ada alasan mengapa Anda tidak bisa melakukannya?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ulangi dimensi array di plpgsql

  2. Impor byte mentah sebagai byte mentah di R

  3. bagaimana cara mengumpulkan banyak nilai sebagai string tunggal di postgres?

  4. tidak mengerti json_agg dalam konteks ini

  5. PostgreSQL - lakukan dua transaksi secara bersamaan