PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Scrivi una query Postgres Ottieni o Crea una query SQL

In un DBMS SQL, l'approccio select-test-insert è un errore:nulla impedisce a un altro processo di inserire la riga "mancante" tra select e insert dichiarazioni. Fai invece questo:

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';

Dovresti essere in grado di passare l'intero testo come una singola "query" al DBMS. Potresti prendere in considerazione l'idea di trasformarlo in una stored procedure.