mysql - 外键引用自己的表?

标签 mysql sql database

任何人都可以解释为什么以下内容在 MySql 上不起作用(当前给出语法错误):

create table manager
(
    employee_name varchar(20) not null,
    manager_name varchar(20) not null, 
    primary key employee_name, 
    foreign key (manager_name) references manager 
    on delete cascade
) 

此外,假设它确实有效,当关系管理器中的元组被删除时会发生什么?

最佳答案

语法是,

create table manager 
( 
    employee_name varchar(20) not null, 
    manager_name varchar(20) null, 
    CONSTRAINT tb_pk primary key (employee_name), 
    CONSTRAINT tb_fk foreign key (manager_name) 
          references manager (employee_name) on delete cascade 
)

问题:假设它确实有效,当关系管理器中的元组被删除时会发生什么?

回答:所有子条目也将被删除。

关于mysql - 外键引用自己的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14776114/

相关文章:

database - SYSDBA 无法删除 Oracle 12.1.0.2 中的用户

java - Android 应用程序连接到数据库

mysql - MySQL View 中自上次查询以来的新记录

mysql - 当我使用命令 help 和 status 时,为什么 mysql 说我的 SQL 语法有错误?

mysql - 如何在 MySQL 中有条件地将英寸转换为厘米(或在 SELECT 期间进行类似的转换)?

php - 如何在不让它死掉的情况下捕获数据库错误?

mysql - 查找表格中的所有起始字母

mysql - phpmyadmin 错误

jquery - "Unserialize"这个字符串 : %C3%A9%C3%A0%C3%A9%C3%A0

database - 在 CouchDB 中构建队列