В моей базе данных Postgres есть несколько схем (schema1
, schema2
).
Я использую liquibase и объявляю процедуру создания в каждой схеме. В моем примере процедуры только команда select name from users;
Psql \df
показывает мне функцию в каждой схеме. Кажется, все хорошо
Теперь в java, когда я вызываю свою процедуру с помощью jdbctemplate со схемой schema1
, выполнение выполнено, но у меня нет пользователей таблиц. Я не знаю почему, потому что пользователи таблиц существуют в каждой схеме. Я добавил имя схемы в качестве параметра к моей процедуре и установил search_path для имени схемы в начале моей процедуры, и все работает нормально.
Но зачем мне устанавливать search_path в моей процедуре? Моя процедура уже определена для каждой схемы, и я установил имя схемы в вызове jdbctemplate? Почему моя таблица пользователей не найдена, если я не установил search_path
?