Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет104/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   100   101   102   103   104   105   106   107   ...   256
sql osnovi yazika

SHOW search_path;
search_path
-----------------
"$user", public
(1 строка)
Схема "$user" присутствует в этом параметре на тот случай, если будут созданы схе-
мы с именами, совпадающими с именами пользователей. Тогда могут упроститься
некоторые операции с базой данных. Однако в базе данных demo нет таких схем, по-
этому первый элемент параметра search_path фактически не участвует в работе,
в результате все обращения к объектам базы данных без указания имени схемы бу-
дут адресоваться схеме public.
Чтобы изменить порядок просмотра схем при поиске объектов в базе данных, нуж-
но воспользоваться командой SET. При этом первой в списке схем следует указать
именно ту, которую СУБД должна просматривать первой. Эта схема и станет теку-
щей. Конечно, такой список может состоять и всего из одной схемы.
Давайте выполним команду
SET search_path = bookings;
А теперь посмотрим, что получилось:
SHOW search_path;
132


Контрольные вопросы и задания
search_path
-------------
bookings
(1 строка)
Да, действительно, теперь первой будет просматриваться схема bookings. А для об-
ращения к объектам, например, таблицам, в схеме public (если бы они в ней были)
нам пришлось бы указывать имя схемы public перед именами этих объектов. Ес-
ли бы мы решили добавить схему public в список просматриваемых схем, то нужно
было бы включить ее в команду SET:
SET search_path = bookings, public;
Узнать имя текущей схемы можно с помощью встроенной функции current_schema
(обратите внимание на отсутствие скобок при вызове функции в команде SELECT).
SELECT current_schema;
current_schema
----------------
bookings
(1 строка)
При создании объектов базы данных, например таблиц, необходимо учитывать сле-
дующее: если имя схемы в команде не указано, то объект будет создан в текущей
схеме. Если же вы хотите создать объект в конкретной схеме, которая не является
текущей, то нужно указать ее имя перед именем создаваемого объекта, разделив их
точкой. Например, для создания таблицы airports в схеме my_schema следует сде-
лать так:


Достарыңызбен бөлісу:
1   ...   100   101   102   103   104   105   106   107   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет