Псевдоним таблицы Postgres для сессии PSQL - PullRequest
0 голосов
/ 11 октября 2018

Я могу использовать псевдоним таблицы в выражении Postgres следующим образом:

SELECT a.id FROM very_long_table_name AS a;

Существует ли механизм для установки аналогичного псевдонима, который сохраняется для сеанса psql?

Например:

$: psql -d sample
sample=# CREATE ALIAS a for very_long_table_name;
sample=# select id from a limit 1;
 id 
____
  1

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Как показано в руководстве , это можно сделать с помощью psql переменных:

sample=# \set a 'very_long_table_name'
sample=# select id from :a limit 1;
 id 
----
   1
(1 row)

Если вы не хотите запускать \set каждый раз вручную, вы можете включить ваши общие короткие имена в ~/.psqlrc, который читается при запуске psql

0 голосов
/ 12 октября 2018

Я думаю, что лучший вариант - создать временное представление.

Это решение не ограничено psql.

CREATE TABLE averylongname (id integer PRIMARY KEY);
INSERT INTO averylongname VALUES (1);

CREATE TEMPORARY VIEW x AS SELECT * FROM averylongname;

Представление автоматически исчезнет, ​​когда завершится сеанс базы данных.и также может использоваться с операторами DML:

INSERT INTO x VALUES (2);
SELECT * FROM x;

 id 
----
  1
  2
(2 rows)
0 голосов
/ 11 октября 2018

Я не знаю, как создать такой псевдоним, но вы можете создать представление поверх таблицы и дать ему короткое имя, например,

CREATE VIEW short_name AS
SELECT *
FROM very_long_table_name;

Затем используйтесмотреть имя как псевдоним.Поскольку представления обычно работают так же, как и базовые таблицы, в отношении индексов, вы не должны сильно терять в производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...