-3

次のように、EMPLOYEE と DEPARTMENT という名前の 2 つのテーブルがあります。

CREATE table "EMPLOYEE" (
    "EMP_ID"     NUMBER,
    "ENAME"      VARCHAR2(4000),
    "SALARY"     VARCHAR2(4000),
    "COMPANY"    VARCHAR2(4000),
    "CONTACTNO." NUMBER,
    "GENDER"     CHAR(100),
    constraint  "EMPLOYEE_PK" primary key ("EMP_ID")
)

CREATE TABLE  "DEPARTMENT" 
(   
    "DEPT_ID" NUMBER, 
    "DEPT_NAME" VARCHAR2(4000), 
    "LOCATION" VARCHAR2(4000), 
    "CONTACTNO." NUMBER, 
     CONSTRAINT "DEPARTMENT_PK" PRIMARY KEY ("DEPT_ID") ENABLE
)

現在、EMPLOYEE テーブルの Emp_ID を EMPLOYEE テーブル自体の主キーとして作成しようとしていますが、DEPARTMENT テーブルの DEPT_ID の外部キーとして機能する必要があります。これを達成する方法を教えてください!

4

3 に答える 3

2

EMPLOYEEを親テーブルにし、 を子テーブルにする場合、外部キーは、テーブル内の を参照する場所でDEPARTMENT定義する必要があります。外部キーは子テーブルで作成され、親テーブルを参照します。DEPARTMENTEMP_IDEMPLOYEE

CREATE TABLE  "DEPARTMENT" 
(   
    "DEPT_ID" NUMBER, 
    "DEPT_NAME" VARCHAR2(4000), 
    "LOCATION" VARCHAR2(4000), 
    "CONTACTNO." NUMBER, 
     CONSTRAINT "DEPARTMENT_PK" PRIMARY KEY ("DEPT_ID") ENABLE,
     CONSTRAINT department_fk FOREIGN KEY( DEPT_ID )
       REFERENCES employee( EMP_ID )
)

もちろん、あなたの例を考えると、外部キー制約を定義することは、データをモデル化するための完全に間違ったアプローチになります。有効な部門 ID のセットが従業員 ID のセットによって制約されることは意味がありません。このように外部キーを定義すると、部門に複数の従業員が存在することもなくなります。実際に部門と従業員をモデル化する場合は、テーブルにDEPT_ID列を追加します。テーブルは親ではなく子になり、テーブルを参照するためにテーブルに外部キーが定義されます。EMPLOYEEEMPLOYEEEMPLOYEEDEPARTMENT

于 2012-09-15T05:08:06.240 に答える
1

これがお役に立てば幸いです

CREATE table "EMPLOYEE" (
"EMP_ID"     NUMBER,
"ENAME"      VARCHAR2(4000),
"SALARY"     VARCHAR2(4000),
"COMPANY"    VARCHAR2(4000),
"Dept_id"    NUMBER,
"CONTACTNO." NUMBER,
"GENDER"     CHAR(100),
 constraint  "EMPLOYEE_PK" primary key ("EMP_ID"),
 CONSTRAINT fk_DeptId FOREIGN KEY (Dept_Id)
 REFERENCES Department("Dept_Id") 
);
于 2012-09-15T04:22:27.167 に答える
-1
CREATE table "EMPLOYEE" (
    "EMP_ID"     NUMBER,
    "ENAME"      VARCHAR2(4000),
    "SALARY"     VARCHAR2(4000),
    "COMPANY"    VARCHAR2(4000),
    "CONTACTNO"  NUMBER,
    "GENDER"     CHAR(100),
    constraint  "EMPLOYEE_PK" primary key ("EMP_ID")
)


ALTER TABLE "EMPLOYEE" ADD CONSTRAINT "EMPLOYEE_FK" 
FOREIGN KEY ("EMP_ID")
REFERENCES "DEPARTMENT" ("DEPT_ID")
于 2012-09-15T04:47:39.240 に答える