2016-08-02 3 views
2

Я пытаюсь сделать внешний ключ. Когда я выполняю запрос ниже, он возвращает пустоту без объяснения или ошибки.postgreSQL возвращает пусто

alter table MySQL."GrossHomeSales" 
    add constraint fk_zip_code 
     foreign key (nhs_prev_zip) references MySQL."Location" (zip_code); 
+0

Alter table не известен своим подробным выходом. Вы чего-то ожидаете? –

+1

Вы можете активировать отладку в postgresql, возможно, вы видите там больше сообщений. [Отчеты об ошибках и протоколирование] (https://www.postgresql.org/docs/9.0/static/runtime-config-logging.html) – Victorqedu

+2

Я использовал этот метод для создания других внешних ключей для других таблиц, и это доказало но я не знаю, почему одно выше ничего не возвращает. А также я новичок в этом сообществе, вы можете вести меня к тому, как у вас могут быть образцы запросов или кодов, скопированных в сером оттенке, который вы редактировали. –

ответ

1

Вы не указали, что такое ваш клиент sql. Если вы используете psql, он произносит ALTER TABLE при внесении изменений в таблицу. Если вместо этого вы использовали pgadmin 3, он бы сказал что-то вроде

Запрос был успешно возвращен без результата в 345 мс.

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

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

Наконец, ваш вопрос заголовка говорит postgresql, но в вашей таблице есть mysql во имя? (это не связано, просто любопытно)