sql >> Databasteknik >  >> RDS >> PostgreSQL

Skriv en Postgres Get or Create SQL Query

I en SQL DBMS är metoden select-test-insert ett misstag:ingenting hindrar en annan process från att infoga den "saknade" raden mellan din select och insert uttalanden. Gör så här istället:

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

Du bör kunna skicka hela texten som en enda "fråga" till DBMS. Du kanske vill överväga att göra det till en lagrad procedur.



  1. Installera Oracle Forms and Reports 11g version 2

  2. Kolumnsammansättning returnerar Null Mysql - Php

  3. Hur man ändrar kolumnstorlek i MySQL

  4. Hämta tecknet mellan de två första specialtecknen i SQL