У меня есть две таблицы, group
и groupmembers
. При вставке строки в таблицу group
я также хочу вставить в таблицу groupmembers
два значения: groupid
(идентификатор из таблицы групп) и userid
(идентификатор пользователя, создавшего группу). Это таблицы:
CREATE TABLE <b>groups</b> (
id SERIAL PRIMARY KEY NOT NULL,
name CHARACTER VARYING(255) NOT NULL,
creator CHARACTER VARYING(255) NOT NULL,
role CHARACTER VARYING(100) NOT NULL DEFAULT ('admin'),
createdon TIMESTAMP WITH TIME ZONE DEFAULT now(),
FOREIGN KEY (creator) references users (email) on delete CASCADE
);
CREATE TABLE <b>groupmembers</b> (
id SERIAL PRIMARY KEY NOT NULL,
groupid INTEGER NOT NULL,
userid INTEGER NOT NULL,
createdon TIMESTAMP WITH TIME ZONE DEFAULT now(),
FOREIGN KEY (groupid) references groups (id) on delete CASCADE,
FOREIGN KEY (userid) references users (id) on delete CASCADE
);
CREATE TABLE <b>users</b> (
id SERIAL PRIMARY KEY NOT NULL,
firstname CHARACTER VARYING(255) NOT NULL,
lastname CHARACTER VARYING(255) NOT NULL,
email CHARACTER VARYING(50) UNIQUE NOT NULL,
password CHARACTER VARYING(255) NOT NULL,
registeredon TIMESTAMP WITH TIME ZONE DEFAULT now()
);
Оператор вставки в таблицу групп:
INSERT INTO groups (name, creator) VALUES ($1, $2) RETURNING *;
Как добавить еще один оператор вставки, который вставляет значения в столбцы groupid
и userid
таблицы groupmembers
?
Я видел это, но, похоже, он не отвечает на мой вопрос:
Вложенные в PostgreSQL INSERT / WITH для вставки внешнего ключа