我正在创建一个postgreSQL表,它有一个引用自己的外键,所以它是一个类似于树的结构:
CREATE TABLE Person(
ID serial PRIMARY KEY,
Description text,
Name varchar(5),
ParentID serial,
FOREIGN KEY (ParentID) REFERENCES Person(ID)
);
问题是ParentID自动设置为NOT NULL
,因此该树中没有root。如何让它可以为空?
答案 0 :(得分:12)
您可能希望将ParentID的类型更改为整数,这是串行的基础类型。
CREATE TABLE Person(
ID serial PRIMARY KEY,
Description text,
Name varchar(5),
ParentID integer,
FOREIGN KEY (ParentID) REFERENCES Person(ID)
);
此处提供了整数和串行数据类型的文档:http://www.postgresql.org/docs/current/static/datatype-numeric.html