sql - 同一张表上的外键

标签 sql foreign-keys

我有一个数据库架构,其中包括

Group{name, group.id, parent.id} with key {group.id}

在此架构中,所有 parent.id 必须已存在于 group.id 列中或者为 null。 创建表时如何将此约束转换为 SQL? 谢谢

最佳答案

常规外键就足够了。如果该字段为空,它不会执行任何检查。精确的语法可能稍微依赖于 SQL 方言,但它看起来像

create table Group_ (
    name varchar(30) not null,
    groupid int not null primary key,
    parentid int null foreign key references Group_ (groupid) )

关于sql - 同一张表上的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17608244/

相关文章:

mysql - 错误代码 1215 : cannot add foreign key constraint

sql - 外键 null - 性能下降

mysql - 使用 INNER JOIN 或 MIN 进行更新?

sql - oracle用户在sql中定义分隔符

sql - QSqlDatabase 和 QTableView 不同步(SQLite)

database - 如何在 "diamond-shaped"关系系统中保持外键关系一致

mysql - 如何添加外键(MySQL)

java - hibernate 复合键: foreign key has wrong number of columns

sql : join and group by

sql - 递归添加多行