PostgreSQL에서 테이블 이름을 변경하려면 ALTER TABLE 문 뒤에 RENAME TO 절을 사용하면 돼요.
계속 읽기 전에 저희 오픈 소스 PostgreSQL GUI인 Beekeeper Studio를 소개할게요. 사이드바에서 테이블을 우클릭하면 이름을 바꿀 수 있고, PostgreSQL에서는 무료로 사용할 수 있어요. 여기에서 다운로드하세요.
구문
ALTER TABLE old_table_name RENAME TO new_table_name;
예제
customers라는 테이블이 있고 이 이름을 clients로 바꾸고 싶다고 가정해 볼게요. SQL 명령은 다음과 같아요:
ALTER TABLE customers RENAME TO clients;
위 명령을 실행하면 customers 테이블의 이름이 clients로 변경돼요. information_schema를 쿼리하거나 \d로 모든 테이블 목록을 조회해서 이름이 바뀌었는지 확인할 수 있어요:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';
예상 출력:
table_name
--------------
clients
other_table
종속성이 있는 테이블 이름 변경
테이블 이름을 변경할 때는 외래 키, 인덱스, 트리거 같은 기존 종속성을 고려하는 것이 중요해요. PostgreSQL은 이를 자동으로 처리해서 이름이 바뀐 테이블에 대한 참조를 업데이트해 줘요.
외래 키 예제
orders 테이블에 customers 테이블을 참조하는 외래 키가 있다고 가정해 볼게요:
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INT REFERENCES customers(customer_id)
);
customers를 clients로 이름을 바꾸면 PostgreSQL이 외래 키 참조를 자동으로 업데이트해요:
ALTER TABLE customers RENAME TO clients;
확인
외래 키가 여전히 잘 동작하는지 확인하려면 간단한 INSERT 문을 실행해 보세요:
INSERT INTO clients (customer_id) VALUES (1);
INSERT INTO orders (customer_id) VALUES (1);
외래 키 참조가 업데이트되지 않았다면 두 번째 INSERT는 실패해요. 성공한다면 PostgreSQL이 참조를 올바르게 업데이트한 거예요.
스키마 안의 테이블 이름 변경
테이블이 특정 스키마 안에 있다면 ALTER TABLE 명령에 스키마를 포함해야 해요.
예제
sales 스키마 안의 sales.customers 테이블을 예로 들어 볼게요:
ALTER TABLE sales.customers RENAME TO clients;
이제 sales.customers 테이블은 sales.clients가 됐어요. sales 스키마의 테이블 목록을 조회해서 확인할 수 있어요:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'sales';
예상 출력
table_name
-----------
clients
other_table
Beekeeper Studio 사용하기
Beekeeper Studio에서는 테이블 이름을 간단하게 변경할 수 있어요:
- Beekeeper Studio로 PostgreSQL 데이터베이스에 연결하세요.
- 왼쪽 창에서 테이블이 있는 스키마를 펼치면 테이블 목록이 보여요.
- 이름을 바꿀 테이블을 마우스 오른쪽 버튼으로 클릭하고
rename table옵션을 선택하세요. - 새 테이블 이름을 입력하고 Enter 키를 누르세요.
나머지는 Beekeeper Studio가 알아서 처리해요. PostgreSQL 데이터베이스에 적절한 SQL 명령을 실행해 줘요.
고려 사항 및 모범 사례
-
인덱스 및 제약 조건 이름: PostgreSQL은 외래 키 같은 종속성은 자동으로 업데이트하지만, 인덱스나 제약 조건의 이름은 바꾸지 않아요. 인덱스나 제약 조건 이름에 기존 테이블 이름이 들어 있다면 직접 이름을 바꿔야 할 수도 있어요.
-
권한: 테이블 이름을 변경해도 권한에는 영향이 없어요. 기존 테이블에 접근할 수 있던 사용자는 이름이 바뀐 테이블에도 똑같이 접근할 수 있어요.
-
뷰 종속성: 테이블에 의존하는 뷰가 있다면 이름을 바꾼 뒤에도 계속 동작하지만, 명확성을 위해 검토하고 업데이트하는 것이 좋아요.
결론
PostgreSQL에서 테이블 이름을 변경하는 것은 간단하지만 중요한 작업이에요. 다른 스키마에 있는 테이블이든 종속성이 있는 테이블이든, PostgreSQL은 모든 참조가 올바르게 업데이트되도록 과정을 매끄럽게 처리해 줘요. 모범 사례를 따르고 이름 변경 과정이 어떻게 동작하는지 이해하면 데이터베이스의 무결성과 체계를 잘 유지할 수 있어요.
함께 읽으면 좋은 글:
Beekeeper Studio는 무료 & 오픈 소스 PostgreSQL GUI예요
제가 찾던 바로 그 PostgreSQL 클라이언트예요! UI가 차별점이에요. 깔끔하고 직관적이면서 강력해요. 투박한 PGAdmin은 이제 안녕. - David Cyprian
Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬운 PostgreSQL 클라이언트예요. 다른 데이터베이스도 많이 지원하고 Windows, Mac, Linux에서 모두 잘 작동해요.
PostgreSQL 사용자들의 Beekeeper Studio 후기
pgAdmin과 달리 Beekeeper는 놀라울 만큼 사용하기 쉬우면서도 기능이 부족하지 않아요. 가격도 적당하고요! 특히 데이터베이스 백업 기능이 유용해요. 정말 훌륭한 소프트웨어예요.
멋진 도구예요. 지금까지 써 본 Postgres와 MySql DB 관리용 IDE 중 가장 실용적이에요. 번거로움 없이 그냥 잘 돌아가요 :-)