У меня есть код ниже, но выдает синтаксическую ошибку в остальной части.
INSERT INTO tbl1 ("Name")
values
((SELECT CASE
WHEN EXISTS(select "OccupationID" from "tbloccupations" where "Name" = '-')
THEN (select "OccupationID" from "tbloccupations" where "Name" = '-')
ELSE (INSERT INTO "tbloccupations" ("Name") VALUES ('-') RETURNING "OccupationID")
END)
);
Это фактический запрос, который должен выполняться, спасибо за вашу помощь:
ALTER TABLE tblcustomers DISABLE TRIGGER ALL;
INSERT INTO public.tblcustomers
("CustomerID","Surname","OtherNames","Sex","DateOfBirth","OccupationID","Residence","PostalAddress","TownID",
"NextOfKin","NextOfKinRelationship","NextOfKinContact","EmailAddress","DateRegistered","IDTypeID","IDNumber",
"OutPatientNo","InPatientNo","Telephone1","Telephone2","PostalCode","Note","ReferenceNo","NationalityID",
"RegisteredAtCompanyBranchID","RegisteredBySysUID","IsActive")
VALUES('-2','-','-','0','12/12/2012 12:00:00 AM',
(SELECT CASE WHEN EXISTS(select "OccupationID" from "tbloccupations" where "Name" = '-')
THEN(select "OccupationID" from "tbloccupations" where "Name" = '-')
ELSE(INSERT INTO "tbloccupations" ("Name") VALUES ('-') RETURNING "OccupationID") END),
'-','-',
(SELECT CASE WHEN EXISTS(select "TownID" from "tbltowns" where "Name" = '-') THEN
(select "TownID" from "tbltowns" where "Name" = '-')
ELSE(INSERT INTO "tbltowns" ("Name") VALUES ('-') RETURNING "TownID") END),
'-','-','-','-','9/10/2014 12:00:00 AM','0','-','0','0','-','-','-','-','-','0','0','0','1')
ON CONFLICT DO NOTHING;ALTER TABLE tblcustomers ENABLE TRIGGER ALL;