PostgreSQL составляют таблицу, если не существует

В сценарии MySQL можно записать:

CREATE TABLE IF NOT EXISTS foo ...;

... другой материал...

и затем можно много раз запускать скрипт, не воссоздавая таблицу.

Как дела это в PostgreSQL?

147
задан Erwin Brandstetter 17 August 2019 в 06:11
поделиться

1 ответ

Есть нет СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ ... но вы можете написать простую процедуру для этого, например:

CREATE OR REPLACE FUNCTION execute(TEXT) RETURNS VOID AS $$
BEGIN
  EXECUTE $1;
END; $$ LANGUAGE plpgsql;


SELECT 
  execute($$
      CREATE TABLE sch.foo 
      (
        i integer
      )
  $$) 
WHERE 
  NOT exists 
  (
    SELECT * 
    FROM information_schema.tables 
    WHERE table_name = 'foo'
      AND table_schema = 'sch'
  );
2
ответ дан 23 November 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: