sql >> Database >  >> RDS >> PostgreSQL

SELECT of INSERT een rij in één commando

Heb je geprobeerd het te verenigen?

Bewerken - hiervoor is Postgres 9.1 vereist:

create table mytable (id serial primary key, other_key varchar not null unique);

WITH new_row AS (
INSERT INTO mytable (other_key)
SELECT 'SOMETHING'
WHERE NOT EXISTS (SELECT * FROM mytable WHERE other_key = 'SOMETHING')
RETURNING *
)
SELECT * FROM new_row
UNION
SELECT * FROM mytable WHERE other_key = 'SOMETHING';

resulteert in:

 id | other_key 
----+-----------
  1 | SOMETHING
(1 row)


  1. Door de gebruiker gedefinieerd type wijzigen in SQL Server

  2. Top 50 MySQL-interviewvragen die u in 2022 moet voorbereiden

  3. Postgres faalt met 'kon relatietoewijzingsbestand global/pg_filenode.map niet openen'

  4. Hoe converteer ik een tijdstempel naar een datum/tijd in MySQL?