2

私は SQL 開発者を使用するのが初めてです。

これは私のクラスのハードウェアであり、従業員とマネージャーの関係テーブルを作成しました。

そしてケースaの場合。マネージャーが職を失った場合、マネージャー フィールドは null に設定する必要があります。

ケースbの場合。マネージャーが職を失うと、従業員も職を失います。

私のテーブルはこんな感じ

lastName | jobTitle | Department | employeeID | fk_employeeID | fk_employeeID1

2 つの employeeID を取得する理由がわかりません。

ここに私のDDLコードがあります:

CREATE TABLE Employee
(
    lastName varchar (255),
    jobTitle varchar (255),
    Department varchar (255),
    id_Employee integer,
    fk_Employeeid_Employee integer NOT NULL,
    fk_Employeeid_Employee1 integer,
    PRIMARY KEY(id_Employee),
    UNIQUE(fk_Employeeid_Employee),
    FOREIGN KEY(fk_Employeeid_Employee) REFERENCES Employee (id_Employee),
    FOREIGN KEY(fk_Employeeid_Employee1) REFERENCES Employee (id_Employee)
)

a と b に「on delete cascade」を使用する必要があると思います。方法を知っている場合は、助けてください。

4

1 に答える 1

1

宿題には少し遅れるかもしれませんが、他の誰かが来る場合に備えて。

CREATE TABLE Employee
(
    lastName varchar (255),
    jobTitle varchar (255),
    Department varchar (255),
    id_Employee integer,
    fk_Employeeid_Employee integer NOT NULL,
    fk_Employeeid_Employee1 integer,
    PRIMARY KEY(id_Employee),
    UNIQUE(fk_Employeeid_Employee),
    FOREIGN KEY(fk_Employeeid_Employee) REFERENCES Employee (id_Employee)
    ON UDPATE CASCADE ON DELETE SET NULL,
    FOREIGN KEY(fk_Employeeid_Employee1) REFERENCES Employee (id_Employee)
    ON UDPATE CASCADE ON DELETE SET NULL
)

複数の fk_employeeID を持っている理由がわかりません...これは、従業員のマネージャーの ID であると想定しています。この場合、上記のコードはあなたが望むことをするはずです。マネージャーが削除されると、fk_employeeID フィールドは null に設定されます。また、マネージャーの ID に対する変更は、外部キー フィールドに反映されます。

それが役立つことを願って、

于 2013-01-26T04:02:45.360 に答える