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

Cayenne, Postgres:thế hệ khóa chính

Từ mô tả của bạn trong phần nhận xét, trong số 2 cột bao gồm PK của 'telefonocliente', chỉ có một cột thực sự độc lập - 'cod_telefono'. Đây sẽ là những gì Cayenne sẽ tạo ra. Trong trường hợp của PosgreSQL, bạn sẽ cần trình tự sau trong DB để điều này xảy ra:

CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;

Bây giờ, PK 'cod_cliente' thứ hai đến từ đâu? Vì cũng là FK sang bàn khác nên có nghĩa là PK “phụ thuộc”, và phải xuất phát từ mối quan hệ. Vì vậy, trước tiên bạn cần lập bản đồ mối quan hệ nhiều-một giữa 'telefonocliente' và 'cliente'. Đánh dấu vào hộp kiểm "To Dep Pk" ở bên 'telefonocliente'. Tạo mối quan hệ đối tượng phù hợp cho các đối tượng Java của bạn. Bây giờ bạn có thể sử dụng nó trong mã của mình:

Cliente c = .. // get a hold of this object somehow   
TelefonoCliente telefono = context.newObject(TelefonoCliente.class);
telefono.setFijo(4999000);
telefono.setCliente(c); // this line is what will populate 'cod_cliente' PK/FK

Chắc là vậy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI:Chỉ mục cột nằm ngoài phạm vi:1, số cột:0

  2. truy vấn đệ quy postgres trên cùng một bảng

  3. Cài đặt Django định cấu hình cơ sở dữ liệu với hai công cụ

  4. vô hiệu hóa LƯU Ý trong đầu ra psql

  5. Sự khác biệt về hiệu suất giữa UUID, CHAR và VARCHAR trong bảng PostgreSql?