自引用完整性约束是引用同一表中父键的外键。建表示例如下:

obclient> CREATE TABLE employee (
employee_id INT PRIMARY KEY, 
employee_name VARCHAR(30), 
salary VARCHAR(30), 
manager_id INT, 
CONSTRAINT sr_fk_emp_man FOREIGN KEY (manager_id) REFERENCES employee(employee_id)
);

manager 也是雇员的一种。所以 manager_id 引用了 employee_id 列作为自己的完整性约束。这就是自引用的一个例子。这种情况会让 DML 操作复杂很多,内核实现中要避免读 employee 表的时候并发更新 employee 表。