PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Schreiben Sie eine Postgres Get- oder Create-SQL-Abfrage

In einem SQL-DBMS ist der Select-Test-Insert-Ansatz ein Fehler:Nichts hindert einen anderen Prozess daran, die "fehlende" Zeile zwischen Ihrem select einzufügen und insert Aussagen. Tun Sie dies stattdessen:

INSERT INTO mytable (color, brightness, size, age)
SELECT color, brightness, size, age 
FROM mytable
WHERE NOT EXISTS (
    select 1 from 
    from mytable
    where color = 'X' and brightness = 'Y'
);
SELECT (color, brightness, size, age) 
FROM mytable 
WHERE color = 'X' AND brightness= 'Y';

Sie sollten in der Lage sein, diesen gesamten Text als einzelne "Abfrage" an das DBMS zu übergeben. Vielleicht möchten Sie es in eine gespeicherte Prozedur umwandeln.