Запрос Postgres через Babelfish

Я подключен через TDS (1433) к базе данных Postgres / Aurora (с поддержкой babelfish).

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

      SELECT current_database()

SELECT * FROM information_schema.tables WHERE table_name = 'PERSON'

SELECT COUNT(1) FROM "PERSON"

Ответы следующие:

      current_database":"babelfish_db"

"table_catalog":"babelfish_db","table_schema":"public","table_name":"PERSON","table_type":"BASE TABLE"...}

relation "person" does not exist

Я просто не могу запросить таблицу PERSON. Я пытался:

      "PERSON"
"person"
PERSON
person
public.PERSON
public.person
public."PERSON"

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

      GRANT CONNECT ON DATABASE babelfish_db TO popweb;
GRANT USAGE ON SCHEMA public TO popweb;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO popweb;

Тем не менее, я не могу получить доступ к таблице. Я чувствую себя таким болваном / нубом

Для тех, кто подключился к Postgres через Babelfish, что я делаю не так?

1 ответ

Общедоступный выпуск Babelfish не внес никаких изменений в реализацию информационной схемы PostgreSQL. Итак, вы видите физическую базу данных babelfish_db и общедоступную схему. Похоже, вы создали таблицу, используя конечную точку PostgreSQL.

Чтобы работать с таблицами в Babelfish в настоящее время, вам необходимо создать виртуальную базу данных T-SQL и свои таблицы внутри этой базы данных с помощью конечной точки T-SQL — так же, как вы делали это раньше.

Например, с помощью SSMS и нового запроса, подключенного к вашей конечной точке Babelfish. Вы должны заметить в раскрывающемся списке базы данных SSMS и в строке состояния, что ваш контекст показывает, что вы находитесь в базе данных master.

          CREATE DATABASE ford_prefect;   
    GO   
    USE ford_prefect;   
    GO   
    CREATE SCHEMA school;   
    GO   
    CREATE TABLE [School].[Person](   
        [PersonID] [int] NOT NULL,   
        [LastName] [nvarchar](50) NOT NULL,   
        [FirstName] [nvarchar](50) NOT NULL,   
        [HireDate] [datetime] NULL,   
        [EnrollmentDate] [datetime] NULL,   
        [Discriminator] [nvarchar](50) NOT NULL,   
    CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED    
    (   
        [PersonID] ASC   
    )   
    GO   

На этом этапе вы можете добавлять записи через INSERT и выбирать таблицу без проблем. Ура,
Билл Рамос
Аврора PostgreSQL Babelfish PM, Amazon

Другие вопросы по тегам