PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

SELECT или INSERT ред в една команда

Опитвал ли си да го обединиш?

Редактиране - това изисква Postgres 9.1:

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

води до:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция за премахване на акценти в postgreSQL

  2. Гарантирано ли е запазване на реда в подзаявка?

  3. Изявление на PostgreSQL IF

  4. Как POSITION() работи в PostgreSQL

  5. Най-добрият начин да проверите за празна или нулева стойност