Как проверить, существует ли таблица?

В db / index.js:

const { Pool } = require('pg'); //node-postgres
const pool = new Pool;

module.exports = {
    query: (text, params, callback) => {
        return pool.query(text,params,callback);
    }
};

В моем main.js:

const db = require('./db/index');

    db.query('SELECT count(*) from pg_class where relname ="session" and relkind="r"', (err, res) => {
        if (err) {
          //TODO: What to do if there is an error?
        }
        console.log(res);
    });

Результат:

неопределенный

Как проверить, существует ли таблица с именем "сеанс"? Как я узнаю, что мой запрос вообще работает?

РЕДАКТИРОВАТЬ: это не дубликат приведенных выше вопросов, потому что мой вопрос связан с кодом javascript Node.js. Только не SQL! Я просто хочу знать, что искать в объекте res, поскольку он кажется неопределенным ...


person Rahul Iyer    schedule 30.09.2017    source источник
comment
Назови ее имя, и если ответят - стол есть.   -  person vitaly-t    schedule 01.10.2017
comment
Предлагаю вам отредактировать заголовок, так как он вводит в заблуждение.   -  person martin clayton    schedule 02.10.2017


Ответы (1)


Вы можете проверить код ниже;

SELECT EXISTS (
   SELECT 1
   FROM   information_schema.tables 
   WHERE  table_schema = 'schema_name'
   AND    table_name = 'table_name'
   );

or

SELECT EXISTS (
   SELECT 1 
   FROM   pg_catalog.pg_class c
   JOIN   pg_catalog.pg_namespace n ON n.oid = c.relnamespace
   WHERE  n.nspname = 'schema_name'
   AND    c.relname = 'table_name'
   );

or

SELECT 'schema_name.table_name'::regclass

or

SELECT to_regclass('schema_name.table_name');

Если не существует, этот запрос возвращает null

person Dr. X    schedule 30.09.2017
comment
Как мне проверить ответ в коде node.js? А как узнать имя схемы? Все, что я сделал, это создал таблицу .. - person Rahul Iyer; 30.09.2017