Давайте предположим, что у меня есть таблицы журнала:Проверьте строка уже существует, если так сказать ссылочной таблицы идентификатор
CREATE TABLE magazine
(
magazine_id integer NOT NULL DEFAULT nextval(('public.magazine_magazine_id_seq'::text)::regclass),
longname character varying(1000),
shortname character varying(200),
issn character varying(9),
CONSTRAINT pk_magazine PRIMARY KEY (magazine_id)
);
И еще один вопрос таблицы:
CREATE TABLE issue
(
issue_id integer NOT NULL DEFAULT nextval(('public.issue_issue_id_seq'::text)::regclass),
number integer,
year integer,
volume integer,
fk_magazine_id integer,
CONSTRAINT pk_issue PRIMARY KEY (issue_id),
CONSTRAINT fk_magazine_id FOREIGN KEY (fk_magazine_id)
REFERENCES magazine (magazine_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);
Текущие Вставки:
INSERT INTO magazine (longname,shotname,issn)
VALUES ('a long name','ee','1111-2222');
INSERT INTO issue (fk_magazine_id,number,year,volume)
VALUES (currval('magazine_magazine_id_seq'),'8','1982','6');
Теперь строка должна быть вставлена в «журнал», если она еще не существует. Однако, если он существует, в таблице «проблема» необходимо получить «журнал_ид» строки, которая уже существует, чтобы установить ссылку.
Как я могу это сделать?
Thx заранее!
Я даже не уверен, что сказать об этом «ответе». –