programing

PostgreSQL - 데이터베이스 이름 변경

subpage 2023. 5. 29. 10:54
반응형

PostgreSQL - 데이터베이스 이름 변경

데이터베이스 이름을 변경해야 하지만 데이터베이스 이름을 변경할 때PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"그럴 수 없다고 하더군요

어떻게 해야 하나요?

(Windows XP의 경우 버전 8.3)

갱신하다

  • 첫 번째 오류 메시지: 연결되어 있었기 때문에 할 수 없습니다.그래서 저는 다른 데이터베이스를 선택하고 쿼리를 했습니다.

  • 사용자 연결이 되었다는 두 번째 오류 메시지가 표시됩니다.에서 확인합니다.PGAdmin많이 있는 스크린을 많이 가지고 있습니다.PID하지만 그들은 활동적이지 않습니다...어떻게 죽여야 할지 모르겠어요

데이터베이스 이름을 따옴표로 묶지 마십시오.

ALTER DATABASE people RENAME TO customers;

또한 데이터베이스에 연결된 다른 클라이언트가 없는지 확인합니다.마지막으로 오류 메시지를 게시하여 더 많은 정보를 얻을 수 있습니다.

향후 참조를 위해 다음을 수행할 수 있습니다.

-- disconnect from the database to be renamed
\c postgres

-- force disconnect all other clients from the database to be renamed
SELECT pg_terminate_backend( pid )
FROM pg_stat_activity
WHERE pid <> pg_backend_pid( )
    AND datname = 'name of database';

-- rename the database (it should now have zero clients)
ALTER DATABASE "name of database" RENAME TO "new name of database";

해당 표를 참조하십시오.pg_stat_activity기둥.pid로 명명되었습니다.procpid9.2 이전 버전에서.그래서 만약 당신의 Postgre가SQL 버전이 9.2보다 낮습니다. 사용procpid대신에pid.

저는 방금 이것과 마주쳤고 아래는 효과가 있었습니다.

1)pgAdmin세션 중 하나입니다.사용하다psql대신.
중지pgBouncer세션도 생성되므로 Windows에서 스케줄러 서비스 또는 둘 다 사용할 수 있습니다.

언니스트가 코멘트로 데이터베이스를 다시 시작하라고 하면 작동합니다!데이터베이스를 다시 시작하면 기존 연결이 모두 종료되고 다른 데이터베이스에 연결하여 초기 쿼리로 이름을 바꿀 수 있습니다.

다들.

핵무기를 배치하는 대신(서버를 재시작하는) 연결의 출처를 찾아 클라이언트 프로세스를 종료하거나 기능을 사용하여 연결을 닫아야 합니다.

pgadmin을 통해 연결된 경우 기본 데이터베이스는 postgres가 됩니다.

ALTER DATABASE postgres RENAME TO pgnew;

이것은 작동하지 않을 것입니다.

pgadmin에서 서버를 마우스 오른쪽 단추로 클릭하고 Maintenance DB를 다른 DB로 설정하여 저장해야 합니다.그런 다음 다시 시도하면 다른 연결이 없으면 작동합니다.

DBeaver를 사용하여 이 문제가 발생하고 다음과 같은 오류 메시지가 표시되는 사용자:

ERROR: database "my_stubborn_db" is being accessed by other users
  Detail: There is 1 other session using the database.

현재 연결을 끊고 이름을 변경할 데이터베이스를 대상으로 하지 않는 연결로 동일한 서버에 다시 연결합니다.

활성 데이터베이스를 변경하는 것만으로는 충분하지 않습니다.

ALTER DATABASE old_database RENAME TO new_database;

old_database는 이미 존재하는 데이터베이스를 의미합니다.new_message는 이 이름을 수정해야 함을 의미합니다.

Example: ALTER DATABASE profile RENAME TO address;

언급URL : https://stackoverflow.com/questions/143756/postgresql-rename-database

반응형