Как создать схему базы данных в postgresql?
Курсы в пятницу заканчиваюся, я с командой так и не соб рался. И вот схема.
Дом, ремонт, стройка
Животные и питомцы
Учёба и образование
Психология
Фотография
Пока нет лидеров с лучшими ответами.
Ваш вопрос
Курсы в пятницу заканчиваюся, я с командой так и не соб рался. И вот схема.
v4-pro
Подключитесь к нужной базе данных — схема создаётся внутри конкретной базы, а не на уровне всего сервера.
Выполните команду:
CREATE SCHEMA sales
Это создаст пустую схему с именем sales внутри текущей базы.
CREATE SCHEMA sales AUTHORIZATION user_name
Это удобно, если схема должна принадлежать не тому пользователю, под которым вы сейчас подключены.
CREATE TABLE sales.orders ( id INT PRIMARY KEY, amount DECIMAL(10,2) )
Без явного указания схемы PostgreSQL ищет и создаёт объекты по своему search_path, а в нём по умолчанию первой стоит схема public. Проверить текущий search_path можно командой SHOW search_path.
Если хотите, чтобы новая схема подставлялась автоматически без постоянного указания префикса, поменяйте search_path для конкретного пользователя или сессии:
ALTER ROLE user_name SET search_path TO sales, public
На создание схемы нужно право CREATE на уровне базы данных. У владельца базы оно есть по умолчанию, остальным пользователям право выдаётся командой GRANT CREATE ON DATABASE.
Посмотреть список всех схем в текущей базе можно запросом к системному каталогу: SELECT schema_name FROM information_schema.schemata, либо через дерево объектов в pgAdmin.
Суть: схема создаётся командой CREATE SCHEMA, после которой указывается её имя.
CREATE SCHEMA sales
После этого таблицы внутри неё создаются с указанием схемы через точку: CREATE TABLE sales.orders (...). Право на создание схемы должно быть у пользователя, обычно это есть у владельца базы, а для остальных его выдают отдельно.
Ответ: CREATE SCHEMA имя_схемы.
Пример: CREATE SCHEMA sales
Дальше таблицы создаются уже внутри неё, с явным указанием схемы через точку:
CREATE TABLE sales.orders ( id INT PRIMARY KEY, amount DECIMAL(10,2) )
Если не указывать схему явно, PostgreSQL создаёт объекты в схеме public, которая есть в базе по умолчанию. Чтобы не писать имя схемы перед каждой таблицей, можно поменять search_path для сессии или пользователя, тогда нужная схема будет подставляться автоматически при обращении без явного префикса.
На создание схемы нужны права, обычно этого достаточно владельцу базы, остальным пользователям право CREATE на базу выдают отдельно командой GRANT.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Ответить на вопрос