Postgresql удалить: Как удалить PostgreSQL
Как удалить PostgreSQL
Часто возникают ситуации, когда PostgreSQL требуется удалить. Возможно что-то неправильно работает, не установилось. Казалось бы, что может быть проще, чем удалить программу с жесткого диска. Однако, когда речь заходит о PostgreSQL возникают определенные трудности.
Связаны они с тем, что Windows создает специальную учетную запись пользователя для базы данных, а сама PostgreSQL работает в онлайн режиме, как фоновая служба. Это все равно что попытаться при включенном компьютере вручную удалить саму операционную систему.
Между тем, установить новую PostgreSQL на старую — невозможно (точнее это не поможет избавиться от проблем).
Безвыходных положений не бывает. Внимательно читаем статью и узнаем о цепочке простых действий, которая поможет удалить PostgreSQL с компьютера.
Удаление PostgreSQL из OS Windows 7 и Vista
- Для начала делаем видимыми все скрытые и системные файлы (Пуск/Панель управления/Свойства папки/Вид)
- Идем Пуск/Панель управления/Программы и компоненты/Postgres, кликаем правой кнопкой мыши, и выбираем Удалить/изменить.
- Нажимаем Пуск и в поле писка вводим cmd. Кликаем по результату поиска правой кнопкой мыши и запускаем от имени администратора.
- В черненьком окне DOS набираем
- net user postgres /del
- Вручную удаляем папку с Postgres (пример адреса, C:/Program File/Postgres)
- Чистим корзину.
- Перезагружаем компьютер.
Удаление PostgreSQL из OS Windows XP
- Стандартным способом удаляем PostgreSQL (Панель управления/программы).
- Вручную удаляем файлы с базой данных (пример адреса C:/Program Files/PostgreSQL 8.4/Data)
- Вручную удаляем учетную запись пользователя Windows (Пуск/Панель управления/Управление компьютером/Локальные пользователи и группы/Пользователь), которая по умолчанию называется Postgres (возможно вы задавали другое имя при установке).
- Чистим корзину.
- Перезагружаем компьютер
Как тщательно очистить и переустановить postgresql на ubuntu? [закрытый]
Как-то мне удалось полностью испортить установку postgresql на Ubuntu karmic. Я хочу начать с нуля, но когда я «очищаю» пакет с apt-get, он все еще оставляет следы, так что конфигурация переустановки не работает должным образом.
после того, как я сделал:
apt-get purge postgresql
apt-get install postgresql
Он сказал
Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) ...
Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112)
Error: move_conffile: required configuration file /var/lib/postgresql/8.4/main/postgresql.conf does not exist
Error: could not create default cluster. Please create it manually with
pg_createcluster 8.4 main --start
or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/8.4/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Setting up postgresql (8.4.3-0ubuntu9.10.1) ...
у меня есть «/etc/postgresql» с ничем в нем и «/etc/ postgresql-common / «имеет» pg_upgradecluser.д’ каталог и корневой.ЭЛТ и user_clusters файлы.
в /etc / passwd есть пользователь postgres; сценарий очистки, похоже, не касается его. Там была куча симптомов, которые я работаю только для того, чтобы разоблачить следующий.
прямо сейчас, когда я запускаю эту команду » pg_createcluster…»он жалуется, что’ /var/lib/postgresql/8.4/main / postgresql.conf не существует», поэтому я найду один из них, но я уверен, что это не конец.
есть ли какой-то простой однострочный (или два) который сожжет его полностью и позволит мне начать все сначала?
203
автор: Mithun Sreedharan
9 ответов
во-первых: если ваша установка еще не повреждена, вы можете удалить нежелательные серверы PostgreSQL («кластеры») в Ubuntu с помощью pg_dropcluster
. Используйте это вместо полной очистки и переустановки, если вы просто хотите начать с свежего initdb
‘д’экземпляр PostgreSQL.
Если вам действительно нужно выполнить полную очистку и переустановку, сначала убедитесь, что PostgreSQL не запущен. ps -C postgres
не должно показывать никаких результатов.
Теперь запустите:
apt-get --purge remove postgresql\*
чтобы удалить все PostgreSQL из ваша система. Просто очистка postgres
пакета недостаточно, так как это просто пустой мета-пакет.
после удаления всех пакетов PostgreSQL запустите:
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres
теперь вы должны быть в состоянии:
apt-get install postgresql
или для полной инсталляции:
apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4
у меня была аналогичная ситуация: мне нужно было очистить postgresql 9.1 на debian wheezy ( я ранее мигрировал из 8.4, и я получал ошибки ).
что я сделал:
во-первых, я удалил config и database
$ sudo pg_dropcluster --stop 9.1 main
затем удален postgresql
$ sudo apt-get remove --purge postgresql postgresql-9.1
и повторно
$ sudo apt-get install postgresql postgresql-9.1
в моем случае я заметил, что /etc/postgresql / 9.1 пуст, и работает service postgresql start
ничего не возвращено
Итак, после более googling я добрался до этой команды:
$ sudo pg_createcluster 9.1 main
С этим я мог бы запустить сервер, но теперь я получал ошибки, связанные с журналом. После дополнительного поиска я изменил разрешения на каталог/var/log / postgresql
$ sudo chown root.postgres /var/log/postgresql
$ sudo chmod g+wx /var/log/postgresql
это исправило проблему, надеюсь, это поможет
Я знаю, что ответ уже был предоставлен, но dselect не работал для меня. Вот что сработало, чтобы найти пакеты для удаления:
# search postgr | grep ^i
i postgresql - object-relational SQL database (supported
i A postgresql-8.4 - object-relational SQL database, version 8.
i A postgresql-client-8.4 - front-end programs for PostgreSQL 8.4
i A postgresql-client-common - manager for multiple PostgreSQL client ver
i A postgresql-common - PostgreSQL database-cluster manager
# aptitude purge postgresql-8.4 postgresql-client-8.4 postgresql-client-common postgresql-common postgresql
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
наконец, редактирование /etc /passwd и/etc / group
11
автор: Klaas van Schelven
шагов, которые работали для меня Ubuntu 8.04.2
удалить postgres 8.3
Список всех Postgres связанных пакетов
dpkg -l | grep postgres ii postgresql 8.3.17-0ubuntu0.8.04.1 object-relational SQL database (latest versi ii postgresql-8.3 8.3.9-0ubuntu8.04 object-relational SQL database, version 8.3 ii postgresql-client 8.3.9-0ubuntu8.04 front-end programs for PostgreSQL (latest ve ii postgresql-client-8.3 8.3.9-0ubuntu8.04 front-end programs for PostgreSQL 8.3 ii postgresql-client-common 87ubuntu2 manager for multiple PostgreSQL client versi ii postgresql-common 87ubuntu2 PostgreSQL database-cluster manager ii postgresql-contrib 8.3.9-0ubuntu8.04 additional facilities for PostgreSQL (latest ii postgresql-contrib-8.3 8.3.9-0ubuntu8.04 additional facilities for PostgreSQL
удалить все перечисленные выше
sudo apt-get --purge remove postgresql postgresql-8.3 postgresql-client postgresql-client-8.3 postgresql-client-common postgresql-common postgresql-contrib postgresql-contrib-8.3
удалите следующие папки
sudo rm -rf /var/lib/postgresql/ sudo rm -rf /var/log/postgresql/ sudo rm -rf /etc/postgresql/
11
автор: Mithun Sreedharan
apt-get purge postgresql*
достаточно.
10
автор: Anish Menon
после ae шаги, которые я выполнил для удаления и переустановки. Что сработало для меня.
Сначала удалите установленные postgres : —
sudo apt-получить чистку postgr*
sudo apt-get autoremove
затем установите ‘synaptic’:
sudo apt-get install synaptic
sudo apt-получить обновление
затем установить postgres
sudo apt-get install postgresql postgresql-contrib
7
автор: Gurudath BN
Я просто столкнулся с той же проблемой для Ubuntu 13.04. Эти команды удалили Postgres 9.1:
sudo apt-get purge postgresql
sudo apt-get autoremove postgresql
мне приходит в голову, что, возможно, нужна только вторая команда, но оттуда я смог установить Postgres 9.2 (sudo apt-get install postgresql-9.2).
2
автор: Jeromy French
Я следил за ответы,
При редактировании /etc / group я также удалил эту строку:
ssl-cert:x:112:postgres
затем, при попытке установить postgresql, я получил эту ошибку
Preconfiguring packages ...
dpkg: unrecoverable fatal error, aborting:
syntax error: unknown group 'ssl-cert' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)
установка строки «ssl-cert:x: 112: postgres» обратно в /etc / group, похоже, исправляет это (поэтому я смог установить postgresql)
я столкнулся с той же проблемой в моем ubuntu 16.04
но я исправил эту проблему, и это очень просто, просто следуйте этим шагам, и вы сможете установить postgresql 10 в своей системе:
добавьте это в свои источники.список:
sudo vim /etc/apt/sources.list
deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib
после этого добавьте эту ссылку в свой pgdg.список файлов, если его нет, вам нужно создать & & добавить ссылку & & Сохранить его.
sudo vim /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
затем обновите свою систему
sudo apt-get update
sudo apt-get upgrade
и установите это unmet зависимости :
apt-get install ssl-cert
вот именно. теперь установите postgresql с помощью этой команды
sudo apt-get install postgresql-10
-1
автор: John Toppo
деинсталляция PostgreSQL | PostgreSQL
Как полностью удалить программу?
Делал по этому руководству:
Руководство по деинсталляции PostgreSQL
Если при создании базы данных программа не может подсоединиться к «Localhost», установлена старая версия PostgreSQL (8.3, например) или возникает какая-либо другая проблема, лучшим решением часто будет полное удаление текущей версии программы PostgreSQL из системы с последующей переустановкой заново вместе с Elephant’ом.
Пожалуйста, постарайтесь на 100% придерживаться данного руководства по деинсталляции для обеих операционных систем (Vista, XP)!
Для операционной системы Vista:
Условия: убедитесь в том, что функции вида папок позволяют вам видеть скрытые файлы (см. окончание руководства для Vista), Postgres установлена в C:/Program Files/Postgres, и учётная запись пользователя называется «postgres».
1) Пуск -> Панель управления -> Программы и компоненты -> Postgres / клик правой кнопкой мыши -> Удалить/изменить
2) Нажмите «Пуск», в поле для поиска введите «cmd». Поиск должен вывести один результат, кликните по нему правой кнопкой мыши, выберите «Запуск от имени администратора»
В диалоговом окне DOS введите:
«net user postgres /del»
3) В папке C:/Documents and Settings полностью удалите папку Postgres
4) Полностью удалите папку C:/Program File/Postgres
Очистите корзину, перезагрузите компьютер, готово.
Как сделать скрытые файлы и папки видимыми:
Зайдите в Пуск -> Панель управления > «Свойства папки». Кликните по вкладке «Вид».
Уберите галочку с опций «Скрывать защищённые системные файлы» и «Скрывать расширения для зарегистрированных типов файлов».
Поставьте галочку рядом с опцией «Показывать скрытые файлы и папки»
Но у меня В папке C:/Documents and Settings полностью удалите папку Postgres
Нет такой папки!!!
В итоге не могу полностью удалить старую программу что бы поставить Холдем Менеджер
PostgreSQL — DROP база данных
В этой главе мы обсудим, как удалить базу данных в PostgreSQL. Есть два варианта удаления базы данных —
- Используя DROP DATABASE, команду SQL.
- Используя dropdb исполняемый файл командной строки.
Будьте осторожны, прежде чем использовать эту операцию, потому что удаление существующей базы данных приведет к потере полной информации, хранящейся в базе данных.
Использование DROP DATABASE
Эта команда удаляет базу данных. Он удаляет записи каталога для базы данных и удаляет каталог, содержащий данные. Он может быть выполнен только владельцем базы данных. Эта команда не может быть выполнена, пока вы или кто-либо еще подключен к целевой базе данных (подключитесь к postgres или любой другой базе данных, чтобы выполнить эту команду).
Синтаксис
Синтаксис для DROP DATABASE приведен ниже —
DROP DATABASE [ IF EXISTS ] name
параметры
В таблице приведены параметры с их описаниями.
С. Нет. | Параметр и описание |
---|---|
1 | ЕСЛИ СУЩЕСТВУЕТ Не выдавайте ошибку, если база данных не существует. В этом случае выдается уведомление. |
2 | название Имя базы данных для удаления. |
ЕСЛИ СУЩЕСТВУЕТ
Не выдавайте ошибку, если база данных не существует. В этом случае выдается уведомление.
название
Имя базы данных для удаления.
Мы не можем удалить базу данных, которая имеет какие-либо открытые соединения, включая наше собственное соединение с psql или pgAdmin III . Мы должны переключиться на другую базу данных или шаблон1, если мы хотим удалить базу данных, к которой мы сейчас подключены. Таким образом, может быть удобнее использовать программу dropdb , которая является оберткой для этой команды.
пример
Ниже приведен простой пример, который удалит testdb из вашей схемы PostgreSQL:
postgres=# DROP DATABASE testdb; postgres-#
Использование команды dropdb
Исполняемый файл командной строки PostgresSQL dropdb — это оболочка командной строки для команды SQL DROP DATABASE . Нет эффективной разницы между удалением баз данных с помощью этой утилиты и других методов доступа к серверу. dropdb уничтожает существующую базу данных PostgreSQL. Пользователь, который выполняет эту команду, должен быть суперпользователем базы данных или владельцем базы данных.
Синтаксис
Синтаксис для dropdb , как показано ниже —
dropdb [option...] dbname
параметры
В следующей таблице перечислены параметры с их описаниями
С. Нет. | Параметр и описание |
---|---|
1 | имя_бд Имя базы данных, которая будет удалена. |
2 | вариант аргументы командной строки, которые принимает dropdb. |
имя_бд
Имя базы данных, которая будет удалена.
вариант
аргументы командной строки, которые принимает dropdb.
Опции
В следующей таблице перечислены аргументы командной строки, которые принимает dropdb —
С. Нет. | Вариант и описание |
---|---|
1 | -e Показывает команды, отправляемые на сервер. |
2 | -я Выдает запрос подтверждения, прежде чем делать что-либо разрушительное. |
3 | -V Распечатайте версию dropdb и выйдите. |
4 | —Если-существует Не выдавайте ошибку, если база данных не существует. В этом случае выдается уведомление. |
5 | —Помогите Показать справку об аргументах командной строки dropdb и завершиться. |
6 | -х хозяин Указывает имя хоста компьютера, на котором работает сервер. |
7 | порт Указывает порт TCP или расширение файла локального сокета домена UNIX, на котором сервер прослушивает соединения. |
8 | -U имя пользователя Имя пользователя для подключения как. |
9 | -w Никогда не выдавайте запрос пароля. |
10 | -W Заставьте dropdb запрашивать пароль перед подключением к базе данных. |
11 | —maintenance-DB = имя_бд Задает имя базы данных, к которой нужно подключиться, чтобы удалить целевую базу данных. |
-e
Показывает команды, отправляемые на сервер.
-я
Выдает запрос подтверждения, прежде чем делать что-либо разрушительное.
-V
Распечатайте версию dropdb и выйдите.
—Если-существует
Не выдавайте ошибку, если база данных не существует. В этом случае выдается уведомление.
—Помогите
Показать справку об аргументах командной строки dropdb и завершиться.
-х хозяин
Указывает имя хоста компьютера, на котором работает сервер.
порт
Указывает порт TCP или расширение файла локального сокета домена UNIX, на котором сервер прослушивает соединения.
-U имя пользователя
Имя пользователя для подключения как.
-w
Никогда не выдавайте запрос пароля.
-W
Заставьте dropdb запрашивать пароль перед подключением к базе данных.
—maintenance-DB = имя_бд
Задает имя базы данных, к которой нужно подключиться, чтобы удалить целевую базу данных.
пример
В следующем примере демонстрируется удаление базы данных из командной строки ОС —
dropdb -h localhost -p 5432 -U postgress testdb Password for user postgress: ****
Приведенная выше команда удаляет базу данных testdb . Здесь я использовал имя пользователя postgres (находится в pg_roles шаблона template1) для удаления базы данных.
PostgreSQL : Документация: 10: dropuser : Компания Postgres Professional
dropuser
dropuser — удалить учётную запись пользователя PostgreSQL
Синтаксис
dropuser
[параметр-подключения
…] [параметр
…] [имя_пользователя
]
Описание
dropuser удаляет ранее созданного пользователя PostgreSQL. Лишь суперпользователь или пользователь с привилегией CREATEROLE
могут удалять пользователей PostgreSQL. Необходимо быть суперпользователем, чтобы удалить учётную запись другого суперпользователя.
dropuser это обёртка для SQL-команды DROP ROLE. Удаление пользователей с её помощью по сути не отличается от выполнения того же действия при обращении к серверу другими способами.
Параметры
dropuser принимает в качестве аргументов:
имя_пользователя
Указывает имя удаляемой роли PostgreSQL. Если передан флаг
-i
/--interactive
, а имя не указано в параметрах команды, его необходимо будет ввести интерактивно.-e
--echo
Вывести команды к серверу, генерируемые при выполнении dropuser.
-i
--interactive
Вывести подтверждение об удалении роли, и запросить её имя, если оно не указано в параметрах команды.
-V
--version
Вывести версию dropuser.
--if-exists
Перехватить ошибку, если пользователь не существует. В этом случае вместо ошибки будет выведено информационное сообщение.
-?
--help
Вывести справку по команде dropuser.
dropuser также принимает из командной строки параметры подключения:
-h
сервер
--host=
сервер
Указывает имя компьютера, на котором работает сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета.
-p
порт
--port=
порт
Указывает TCP-порт или расширение файла локального Unix-сокета, через который сервер принимает подключения.
-U
имя_пользователя
--username=
имя_пользователя
Имя пользователя, под которым производится текущее подключение к базе.
-w
--no-password
Не выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл
.pgpass
, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.-W
--password
Принудительно запрашивать пароль перед подключением к базе данных.
Это несущественный параметр, так как dropuser запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако, чтобы понять это, dropuser лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести
-W
, чтобы исключить эту ненужную попытку подключения.
Переменные окружения
PGHOST
PGPORT
PGUSER
Параметры подключения по умолчанию
Эта утилита, как и большинство других утилит PostgreSQL, также использует переменные среды, поддерживаемые libpq (см. Раздел 33.14).
Диагностика
В случае возникновения трудностей, обратитесь к DROP ROLE и psql. При диагностике следует учесть, что при запуске утилиты также применяются переменные окружения и параметры подключения по умолчанию libpq.
Примеры
Чтобы удалить роль joe
на сервере, используемом по умолчанию:
$
dropuser joe
Чтобы удалить роль joe
на сервере eden
, слушающем подключения на порту 5000, в интерактивном режиме и с выводом выполняемых команд:
$
dropuser -p 5000 -h eden -i -e joe
Роль "joe" будет удалена навсегда. Продолжить? (y/n)
y
DROP ROLE joe;
PostgreSQL : Документация: 9.5: 20.4. Удаление ролей : Компания Postgres Professional
20.4. Удаление ролей
Так как роли могут владеть объектами баз данных и иметь права доступа к объектам других, удаление роли не сводится к немедленному действию DROP ROLE. Сначала должны быть удалены и переданы другим владельцами все объекты, принадлежащие роли; также должны быть отозваны все права, данные роли.
Владение объектами можно передавать в индивидуальном порядке, применяя команду ALTER
, например:
ALTER TABLE bobs_table OWNER TO alice;
Кроме того, для переназначения какой-либо другой роли владения сразу всеми объектами, принадлежащих удаляемой роли, можно применить команду REASSIGN OWNED. Так как REASSIGN OWNED
не может обращаться к объектам в других базах данных, её необходимо выполнить в каждой базе, которая содержит объекты, принадлежащие этой роли. (Заметьте, что первая такая команда REASSIGN OWNED
изменит владельца для всех разделяемых между базами объектов, то есть для баз данных или табличных пространств, принадлежащих удаляемой роли.)
После того как все ценные объекты будут переданы новым владельцам, все оставшиеся объекты, принадлежащие удаляемой роли, могут быть удалены с помощью команды DROP OWNED. И эта команда не может обращаться к объектам в других базах данных, так что её нужно запускать в каждой базе, которая содержит объекты, принадлежащие роли. Также заметьте, что DROP OWNED
не удаляет табличные пространства или базы данных целиком, так что это необходимо сделать вручную, если роли принадлежат базы или табличные пространства, не переданные новым владельцам.
DROP OWNED
также удаляет все права, которые даны целевой роли для объектов, не принадлежащих ей. Так как REASSIGN OWNED
такие объекты не затрагивает, обычно необходимо запустить и REASSIGN OWNED
, и DROP OWNED
(в этом порядке!), чтобы полностью ликвидировать зависимости удаляемой роли.
С учётом этого, общий рецепт удаления роли, которая владела объектами, вкратце таков:
REASSIGN OWNED BY doomed_role TO successor_role; DROP OWNED BY doomed_role; -- повторить предыдущие команды для каждой базы в кластере DROP ROLE doomed_role;
Когда не все объекты нужно передать одному новому владельцу, лучше сначала вручную отработать исключения, а в завершение выполнить показанные выше действия.
При попытке выполнить DROP ROLE
для роли, у которой сохраняются зависимые объекты, будут выданы сообщения, говорящие, какие объекты нужно передать другому владельцу или удалить.
Как удалить все лишние процессы Postgresql? — Хабр Q&A
Стояла 9 версия psql , удалил её, поставил 11.1, видимо 9 удалилась не корректно или до конца но у меня теперь такие ошибки
текущий pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
postgresql.conf
listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
log:
2019-02-02 09:23:45.784 GMT [5252] СООБЩЕНИЕ: работа системы БД была прервана; последний момент работы: 2019-02-02 09:09:57 GMT
2019-02-02 09:23:47.194 GMT [5252] СООБЩЕНИЕ: система БД была остановлена нештатно; производится автоматическое восстановление
2019-02-02 09:23:47.206 GMT [5252] СООБЩЕНИЕ: запись REDO начинается со смещения 0/1670060
2019-02-02 09:23:47.206 GMT [5252] СООБЩЕНИЕ: неверная длина записи по смещению 0/1670098: ожидалось 24, получено 0
2019-02-02 09:23:47.206 GMT [5252] СООБЩЕНИЕ: записи REDO обработаны до смещения 0/1670060
2019-02-02 09:23:47.262 GMT [4796] СООБЩЕНИЕ: система БД готова принимать подключения
переменная среды PATH проставлена C:\Program Files\PostgreSQL\11\bin
netstat вроде не показывает ничего на 5432 порту, что еще можно попробвать ? больше ли граблей если ставить через терминал ubuntu psql ?( который в win, на самой ubuntu — все ок)
plpgsql — Как удалить таблицу * или * представление из базы данных PostgreSQL?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
PostgreSQL DELETE Строка соответствует 1/2 Условие, пример выхода
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- A 9000 JR 9000 Testing 9000
- Назад
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- 00030003 Центр контроля качества
- 0003 Центр контроля качества
- SoapUI
- Управление тестированием
- TestLink
SAP
- Назад
- ABAP
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- MMO
- Crystal Reports
- Заработная плата
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- SAP Back Tutorials
- 9007
- Apache
- AngularJS
- ASP.Net
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
js
- Perl
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 00030003 COBOL 9000 Compiler
- 9000 Встроенные системы
- 00030002 9000 Compiler 9000
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сеть
- Операционная система
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
0003
0003
0003
.
Использование Psql для удаления таблицы в базе данных PostgreSQL
Введение
Когда вы работаете с данными, хранящимися в таблицах PostgreSQL, иногда вам может потребоваться удалить таблицу из базы данных. К счастью, интерфейс командной строки psql
позволяет легко выполнить эту задачу. В этой статье мы покажем вам, как получить доступ к базе данных и использовать psql для удаления таблицы в PostgreSQL.
Предварительные требования
Для того, чтобы следовать этому руководству, необходимо выполнить несколько ключевых требований:
На вашем компьютере должен быть установлен кластер базы данных PostgreSQL.Если вы используете дистрибутив Linux, в котором используется
systemd
, вы можете использовать командуsystemctl status postgresql
, чтобы убедиться, что у вас установлен Postgres.Вам необходимо знать некоторые основные команды терминала или командной строки
Вам также потребуется доступ к существующему пользователю PostgreSQL и базе данных или создать их при необходимости.
Подключиться к psql
Прежде чем вы сможете выполнять какие-либо команды базы данных, вам необходимо открыть интерфейс командной строки.
Чтобы подключиться к psql
, вам сначала нужно переключиться на postgres
user:
Затем вы можете запустить интерактивный терминал для Postgres:
Создать базу данных для Postgres
После подключения к psql
вы можете создать базу данных PostgreSQL для использования в этом руководстве:
Если вы хотите увидеть список всех баз данных, введите команду \ l
в psql
. Затем вы можете выбрать, какую базу данных вы хотите использовать.
Чтобы подключиться к psql
и получить доступ к конкретной базе данных, введите \ c
, затем имя базы данных и нажмите клавишу возврата.
Создать таблицу для Postgres
Затем мы создадим таблицу в PostgreSQL. Базовый синтаксис для создания таблицы выглядит так:
1 | CREATE TABLE player ( |
Вот оператор SQL, который мы будем использовать для создания нашей таблицы:
1 | СОЗДАТЬ ТАБЛИЦУ sport |
Вы получите ответ CREATE TABLE
, который означает, что ваша таблица была создана успешно.
ПРИМЕЧАНИЕ: Вы можете использовать команду \ dt
, чтобы отобразить список всех таблиц, которые вы создали в данной базе данных.
Мы создадим в общей сложности две таблицы PostgreSQL, которые можно увидеть в списке ниже:
1 | Список отношений |
Используйте Postgres для удаления таблицы с «DROP»
В PostgreSQL оператор DROP
используется для удаления или удаления таблицы PostgreSQL.
Ниже показан базовый синтаксис оператора DROP
:
Вот полный синтаксис, который содержит некоторые дополнительные пункты и параметры:
1 | DROP TABLE [ЕСЛИ СУЩЕСТВУЕТ] tb_name1, |
Давайте подробнее рассмотрим этот синтаксис:
Имя таблицы идет после предложения
DROP TABLE
.Предложение
IF EXISTS
может быть добавлено после оператораDROP TABLE
. Это предложение предотвратит возникновение ошибки, если рассматриваемая таблица не существует.tb_name1 представляет имя таблицы, которую нужно удалить с помощью оператора
DROP
.tb_name1, tb_name2 представляют имена таблиц, которые нужно удалить, если вы хотите удалить более одной таблицы.
Ограничения CASCADE и RESTRICT не являются обязательными.При использовании CASCADE объекты, зависящие от таблицы, будут отброшены при удалении таблицы. С другой стороны, ограничение RESTRICT отбрасывает таблицу PostgreSQL только в том случае, если от нее не зависят другие объекты.
Теперь, когда мы понимаем, как работает оператор DROP
, давайте попробуем использовать его на нескольких примерах:
Удалить одну таблицу в PostgreSQL
Для DROP
только одна таблица в PostgreSQL, все, что вам нужно сделать, это передать имя таблицы в оператор DROP TABLE
SQL:
Таблица с именем player была удалена с помощью этого оператора.Вы можете убедиться, что таблица действительно была отброшена, используя команду Postgres \ dt
для вывода списка всех таблиц базы данных.
Удалить несколько таблиц в PostgreSQL
Оператор таблицы DROP
также может использоваться для удаления более чем одной таблицы. Когда вы отбрасываете несколько таблиц, убедитесь, что имена таблиц разделены запятыми. Вы можете увидеть, как это работает, в примере ниже:
1 | DROP TABLE игрок, спорт; |
Этот оператор удалит две таблицы с именами player и sport .
Давайте представим, что мы не совсем уверены, что обе эти таблицы существуют в нашей базе данных. Мы можем изменить наш оператор DROP
, чтобы использовать предложение IF EXISTS
:
1 | DROP TABLE IF EXISTS player, sport; |
Если одна из этих таблиц не существует, PostgreSQL не выдаст ошибку.
Используйте psql для удаления таблицы
Вы также можете выполнять команды и операторы SQL вне psql
, используя терминал или терминал командной строки.Это делается путем передачи флага -c
команде psql
.
В следующем примере команда psql -c
запускается вне интерфейса командной строки PostgreSQL. Вы можете указать Postgres на DROP
таблицы, передав оператор SQL в виде строки команде:
1 | psql -c ‘УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ sport;’ |
Если вы получаете сообщение об ошибке : пользователь не существует
или таблица не существует, вам может потребоваться указать имя пользователя и базу данных с помощью флагов -U
и -d
.Вот пример:
1 | psql -U postgres -d template1 -c ‘УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ sport;’ |
ПРИМЕЧАНИЕ. template1
— это встроенная база данных Postgres по умолчанию.
Если удаление прошло успешно, Postgres вернет ответ DROP TABLE
в терминал или окно командной строки.
Заключение
Если вам нужно удалить таблицу в PostgreSQL, важно знать, как это сделать правильно, поскольку операция удаления является постоянной и не может быть отменена.В этой статье мы объяснили, как использовать psql для удаления таблицы в PostgreSQL. С помощью наших инструкций и примеров вы сможете удалить одну или несколько таблиц из собственной базы данных PostgreSQL.
.
PostgreSQL DROP DATABASE — Удаление баз данных PostgreSQL
Резюме : в этом руководстве вы узнаете, как использовать оператор PostgreSQL DROP DATABASE
для удаления базы данных.
Введение в оператор PostgreSQL DROP DATABASE
Когда база данных больше не нужна, вы можете удалить ее с помощью оператора DROP DATABASE
.
Ниже показан синтаксис оператора DROP DATABASE
:
DROP DATABASE [IF EXISTS] имя_базы_данных;
Чтобы удалить базу данных:
- Укажите имя базы данных, которую вы хотите удалить, после предложения
DROP DATABASE
. - Используйте
IF EXISTS
, чтобы предотвратить ошибку при удалении несуществующей базы данных. Вместо этого PostgreSQL выдаст уведомление.
Оператор DROP DATABASE
навсегда удаляет записи каталога и каталог данных. Это действие нельзя отменить, поэтому используйте его с осторожностью.
Только суперпользователи и владелец базы данных могут выполнять оператор DROP DATABASE
. Кроме того, вы не можете выполнить оператор DROP DATABASE
, если база данных все еще имеет активные соединения.В этом случае вам необходимо отключиться от базы данных и подключиться к другой базе данных, например, postgres
, чтобы выполнить оператор DROP DATABASE
.
PostgreSQL также предоставляет служебную программу с именем dropdb
, которая позволяет удалить базу данных. Программа dropdb
выполняет оператор DROP DATABASE
за кулисами.
1) Отбросьте базу данных с активными соединениями
Чтобы удалить базу данных с активными соединениями, вы можете выполнить следующие шаги:
Сначала найдите действия, связанные с базой данных, запросив представление pg_stat_activity
:
ВЫБРАТЬ * ОТ pg_stat_activity ГДЕ имя_данных = '<имя_базы_данных>';
Во-вторых, завершите активные соединения, выполнив следующий запрос:
SELECT pg_terminate_backend (pid) ОТ pg_stat_activity ГДЕ pg_stat_activity.datname = '
';
Обратите внимание, что если вы используете PostgreSQL версии 9.1 или более ранней, используйте столбец procpid
вместо столбца pid
, потому что PostgreSQL изменил столбец procid
на столбец pid
с версии 9.2
В-третьих, выполните Оператор DROP DATABASE
:
DROP DATABASE
;
Примеры PostgreSQL DROP DATABASE
Для демонстрации мы будем использовать базы данных, созданные в учебнике PostgreSQL по созданию баз данных.
Если вы еще не создали эту базу данных, вы можете использовать следующие операторы CREATE DATABASE
для их создания:
CREATE DATABASE hrdb; СОЗДАТЬ БАЗУ ДАННЫХ testdb1;
1) Удалите базу данных, у которой нет активного соединения. Пример
Чтобы удалить базу данных hrdb
, используйте владельца hrdb
для подключения к базе данных, отличной от базы данных hrdb
, например, postgres
, и выполните команду следующая выписка:
DROP DATABASE hrdb;
PostgreSQL удалил базу данных hrdb
.
2) Удаление базы данных с активными соединениями. Пример
Следующий оператор удаляет базу данных testdb1
:
DROP DATABASE testdb1;
Однако PostgreSQL выдал следующую ошибку:
ОШИБКА: к базе данных "testdb1" обращаются другие пользователи. Состояние SQL: 55006 Подробно: существует еще 1 сеанс, использующий базу данных.
Чтобы удалить базу данных testdb1
, необходимо разорвать активное соединение и сбросить базу данных.
Сначала запросите представление pg_stat_activity
, чтобы узнать, какие действия происходят в базе данных testdb1
:
SELECT * ОТ pg_stat_activity ГДЕ datname = 'testdb1';
База данных testdb1
имеет одно соединение с localhost
, поэтому можно безопасно разорвать это соединение и удалить базу данных.
Во-вторых, завершите соединение с базой данных testdb1
, используя следующий оператор:
SELECT pg_terminate_backend (pg_stat_activity.pid) ОТ pg_stat_activity ГДЕ pg_stat_activity.datname = 'testdb1';
В-третьих, выполните команду DROP DATABASE
, чтобы удалить базу данных testdb1
:
DROP DATABASE testdb1;
PostgreSQL навсегда отбрасывает testdb1
.
В этом руководстве вы узнали, как использовать оператор PostgreSQL DROP DATABASE
для удаления базы данных. Кроме того, вы также узнали, как удалить базу данных с активными соединениями.
- Было ли это руководство полезным?
- Да Нет
.