Oracle
 sql >> база данни >  >> RDS >> Oracle

Въпрос за композитен първичен ключ / външен ключ на Oracle

Грешката е, защото FOREIGN KEY е една колона, но вие се опитвате да предоставите две колони като родител. Няма нужда да се обвързвате със съставния ключ, защото restrictedgroups няма personid колона...

Имате връзката и обратно - използвайте:

CREATE TABLE restrictedgroups ( 
  groupid number, 
  name varchar2(50), 
  dateadded date, 
  since date, 
  notes varchar2(1024), 
  CONSTRAINT pk_groupid PRIMARY KEY(groupid)
);

CREATE TABLE groupspersonx ( 
  personid number, 
  groupid number, 
  CONSTRAINT pk_persongroupid PRIMARY KEY(personid, groupid),
  CONSTRAINT fk_persongroup FOREIGN KEY(groupid) REFERENCES restrictedgroups(groupid) 
); 

Бих добавил ограничение за външен ключ за всяка таблица personid ще идва от.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избягвайте проблема с BigDecimal при мигриране към Java 1.4 към Java 1.5+

  2. Пренасочване към url в нов раздел от plsql код

  3. Отпечатване на знаци един по един от низ (VARCHAR2) oracle sql без използване на plsql и също без използване на dual

  4. Подаване на динамични входни параметри за „незабавно изпълнение“

  5. Показване на записи от две таблици една до друга, съответстващи само на някои от полетата