#postgresql
#postgresql
Вопрос:
Я запустил команду импортировать таблицы из «xxx.sql» в базу данных Postgres test
, она показывает, что все таблицы созданы, но когда я запускаю dt
в базе данных test
, она показывает «Не найдено никаких связей», но когда я пытаюсь создать таблицу вручную, она показывает «отношение xxx уже существует»
test=# create table test.order_product
(
id serial primary key,
quantity integer,
order_id integer references test.order (id),
);
ERROR: relation "order_product" already exists
test=# select * from order_product;
ERROR: relation "order_product" does not exist
LINE 1: select * from order_product;
Кто-нибудь знает, что не так?
Ниже приведена информация о версии:
PostgreSQL 12.4 (Debian 12.4-1.pgdg100 1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
Комментарии:
1. Таблица существует в схеме,
test
и вы пытаетесь получить ее изpublic
схемы. Когда вы это сделаетеselect * from order_product;
, для получения результата будет отправлена общедоступная схема. Чтобы получить это из тестовой схемы, вам нужноselect * from test.order_product;
.2. @MAK Я пробовал, все еще не работает.
3. Когда вы это сделаете
dt
, отобразится имя схемы с подробными сведениями о таблице, просто проверьте схему, к которой принадлежит таблица.4. @MAK спасибо, теперь я понял. Я создал базу данных «test», и имя схемы также «test». Я новичок в postgres и только что нашел разницу между базой данных и схемой, еще раз спасибо!