Postgresql在两个自引用表上插入ptoblem

时间:2018-01-04 17:50:28

标签: sql database postgresql insert double

我有这张桌子

CREATE TABLE users (
  id integer DEFAULT nextval('users_id_seq'::regclass) NOT NULL PRIMARY KEY,
  username character varying(100) NOT NULL,
  key character varying NOT NULL,
  registerdate timestamp without time zone DEFAULT now(),
  folder_id integer NOT NULL
);

CREATE TABLE folders (
    id integer DEFAULT nextval('folders_id_seq'::regclass) NOT NULL PRIMARY KEY,
    enc_name character varying(500),
    small_name character varying(50),
    owner integer NOT NULL,
    master boolean DEFAULT false
);
ALTER TABLE ONLY folders
    ADD CONSTRAINT folders_owner_fkey FOREIGN KEY (owner) REFERENCES users(id);
ALTER TABLE ONLY users
    ADD CONSTRAINT folder_c_id FOREIGN KEY (folder_id) REFERENCES folders(id);

表用户引用文件夹和文件夹引用用户
每个用户都有自己的主文件夹,每个文件夹都属于某个用户。创建新用户时,还需要创建新文件夹。但是users.folder_id(NOT NULL)和folders.owner(NOT NULL)列都不为空 因此,如果我想创建新的用户条目,我需要一个已经创建的文件夹,如果我想创建一个新文件夹,我需要一个已经创建的用户。
我该如何创建它们?

0 个答案:

没有答案