在 table 创建中使用外键检查另一个 table 的属性值

Check atribute value from another table using a foreign key in table creation

是否可以在 table 创建的不同 table 中检查属性值?例如我有这张 table 票:

CREATE TABLE ticket
(
    id_ticket_pk NUMBER(4) PRIMARY KEY,
    hand_in_date DATE NOT NULL,
    num_clothes NUMBER(4) NOT NULL,
    deposite NUMBER (8,2) NOT NULL,
    comment VARCHAR2(40),
    tax NUMBER(5,3) NOT NULL,
    status VARCHAR2(15) NOT NULL,
    id_counter_fk1 NUMBER(4),
    id_client_fk2  NUMBER(4),

    CONSTRAINT ticket_id_counter_fk1 
        FOREIGN KEY (id_counter_fk1) REFERENCES empleado(id_employee_pk),
    CONSTRAINT ticket_id_client_fk2 
        FOREIGN KEY(id_client_fk2) REFERENCES client(id_client_pk)
);

这个 table 与雇员 table 相关,它有一个名为 type 的属性,可以等于 C - 代表柜台,S- 代表秘书等......我想知道是否可以在创建 table 时添加约束,以验证插入的员工是否具有 employee.type = 'C',其中 employe.id_pk = ticket.id_counter_fk2。还是我必须创建一个外部函数或客户端应用程序来管理它?

您似乎在问是否可以使用外键机制来确保只有职位为 "counter" 的人才能创建支持工单。

简短的回答是否定的,您不能在此 table 上使用外键来检查员工 table pk 中给定的值 id_counter_fk1 并强制执行员工类型为 C

你可以通过其他几种方式来实现,最直接的是如果链接的员工不是C类型则阻止插入的触发器,但是存在FK机制以确保远程记录存在与否,而不是它存在并具有特定的属性