PostgreSQL 테이블 변경: 열 추가 및 이름 변경

⚡ 스마트 요약

PostgreSQL ALTER TABLE 명령은 기존 테이블의 구조를 변경하여 열을 추가하거나 삭제하고, 열 또는 테이블 전체의 이름을 바꾸고, 기본값을 설정하고, 객체를 다시 생성하지 않고도 검사 제약 조건을 추가할 수 있도록 합니다.

  • 🧱 구문 : ALTER TABLE table-name 명령은 문당 하나의 구조적 변경을 수행합니다.
  • 열 추가: `ADD column-name data-type`는 테이블에 새 열을 추가합니다.
  • ✏️ 이름 변경 : 열 이름 변경 및 이름 변경을 사용하여 열 이름 또는 테이블 이름을 변경할 수 있습니다.
  • ⚙️ 기본값: ALTER COLUMN SET DEFAULT 명령은 향후 INSERT 행에 사용할 값을 지정합니다.
  • 🛡️ 조건 확인: ADD CHECK는 새 데이터의 유효성을 검사하고 규칙을 위반하는 값을 거부합니다.
  • 🤖 AI 마이그레이션: AI 비서가 ALTER TABLE 스크립트를 작성하고 안전한 배포를 위해 검토합니다.

PostgreSQL ALTER TABLE

ALTER TABLE이란 무엇인가요? PostgreSQL?

The ALTER TABLE 명령어는 구조를 변경하는 데 사용됩니다. PostgreSQL `<table>`은 테이블을 삭제하지 않고 테이블의 열이나 테이블 이름을 변경하는 데 사용되는 명령어입니다.ping 그리고 객체를 다시 생성합니다.

통사론

다음은 PostgreSQL ALTER TABLE 명령:

ALTER TABLE table-name action;

`table-name` 매개변수는 변경할 테이블의 이름입니다. `action` 매개변수는 수행할 작업(예: 열 이름 변경 또는 열 데이터 형식 변경)입니다.

기술설명

ALTER TABLE 명령은 기존 테이블의 정의를 변경합니다. 다음 하위 형식을 사용합니다.

  • 열 추가이 명령어는 테이블에 새 열을 추가하는 CREATE TABLE 명령과 유사한 구문을 사용합니다.
  • 드롭 컬럼드롭용ping 테이블 열이 제거됩니다. 해당 열에 적용된 제약 조건과 인덱스도 함께 제거됩니다.
  • 기본값 설정/삭제: 열의 기본값을 설정하거나 제거하는 데 사용됩니다. 변경 사항은 이후 열에만 적용됩니다. INSERT 문.
  • NULL이 아닌 설정/삭제: 열에 null 값을 허용할지 여부를 변경합니다.
  • 설정 통계분석 작업에서 각 열에 대한 통계 수집 목표를 설정하기 위한 것입니다.
  • 세트 저장컬럼의 저장 방식을 인라인으로 할지, 보조 테이블에 저장할지 설정하는 데 사용됩니다.
  • OIDS 없이 설정테이블에서 기존 OID 열을 제거하는 데 사용됩니다.
  • 이름 바꾸기: 테이블 이름이나 컬럼 이름을 변경합니다.
  • 테이블_제약 추가테이블에 새로운 제약 조건을 추가하는 데 사용됩니다. 다음과 같은 구문을 사용합니다. 테이블 만들기 명령.
  • 드롭 제약드롭에 사용됨ping 테이블 제약 조건.
  • OWNER테이블, 시퀀스, 인덱스 또는 뷰의 소유자를 특정 사용자로 변경하는 데 사용됩니다.
  • CLUSTER: 향후 클러스터 작업에 사용할 테이블을 표시하는 용도입니다.

열 수정

테이블 열은 여러 가지 방법으로 수정할 수 있습니다. 이러한 수정은 ALTER TABLE 명령어를 사용하여 수행됩니다. 아래에서 이러한 방법들을 살펴보겠습니다.

새 열 추가

새 열을 추가하려면 PostgreSQL 테이블의 경우 ALTER TABLE 명령은 다음 구문과 함께 사용됩니다.

ALTER TABLE table-name
  ADD new-column-name column-definition;

`table-name`은 수정할 테이블의 이름입니다. `new-column-name`은 추가할 새 열의 이름입니다. `column-definition`은 열 정의입니다. 데이터 형식 새로운 열의 내용입니다. 아래에 표시된 도서 표를 참조하십시오.

PostgreSQL ALTER TABLE 예시

테이블에는 id와 name이라는 두 개의 열이 있습니다. 이 테이블에 author라는 이름의 새 열을 추가해야 합니다. 다음 명령어를 실행하세요.

ALTER TABLE Book
  ADD author VARCHAR(50);

위 명령을 실행한 후 Book 테이블은 이제 다음과 같습니다.

PostgreSQL ALTER TABLE 예시

새 열이 성공적으로 추가되었습니다.

테이블 열 이름 바꾸기

ALTER TABLE 명령을 사용하여 열의 이름을 변경할 수 있습니다. 이 경우 명령은 다음 구문과 함께 사용됩니다.

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

`table-name`은 열 이름을 변경할 테이블의 이름입니다. `old-name`은 현재 열 이름이고, `new-name`은 새 열 이름입니다. 아래에 표시된 `Book` 테이블을 예로 들어 보겠습니다.

도서:

PostgreSQL ALTER TABLE 예시

`author` 열의 이름을 `book_author`로 변경해야 합니다. 다음은 명령어입니다.

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

명령을 실행한 후 테이블의 구조를 볼 수 있습니다.

PostgreSQL ALTER TABLE 예시

열 이름이 성공적으로 변경되었습니다.

열의 기본값 설정

특정 열에 기본값을 설정하면 INSERT 작업 시 해당 열에 값을 지정하지 않더라도 기본값이 사용됩니다. 이 경우 ALTER TABLE 명령에서 다음 구문을 사용할 수 있습니다.

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

`table-name`은 수정할 열이 있는 테이블의 이름입니다. `column-name`은 기본값을 설정할 열의 이름이고, `value`는 해당 열의 기본값입니다. 아래의 `Book` 테이블을 예로 들어 보겠습니다.

PostgreSQL ALTER TABLE 예시

book_author 열에 대한 기본값을 설정해야 합니다. 다음 명령을 실행할 수 있습니다.

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

이제 테이블에 행을 삽입해 보겠습니다.

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

참고로, 저희는 id와 name 두 열에만 값을 입력했습니다. 하지만 book_author 열에는 기본값이 사용되었습니다.

PostgreSQL ALTER TABLE 예시

검사 제약 조건 추가

검사 제한조건은 테이블에 삽입되는 레코드의 유효성을 검사하는 데 도움이 됩니다. ALTER TABLE 명령과 ADD CHECK 문을 결합하여 이를 수행할 수 있습니다. 통사론:

ALTER TABLE table-name ADD CHECK expression;

`table-name`은 수정할 테이블의 이름이고, `expression`은 테이블 열에 적용할 제약 조건입니다. Book 테이블의 `book_author` 열이 Nicholas와 Samuel 값만 허용하도록 수정해 보겠습니다.

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

이제 Book 테이블의 book_author 열에 Nicholas 또는 Samuel 이외의 값을 삽입해 보겠습니다.

INSERT INTO Book
VALUES(7, '최고의 PostgreSQL Book', 'Gregory Bush');

해당 명령문은 다음과 같은 오류를 반환합니다.

PostgreSQL ALTER TABLE 예시

검사 제약 조건을 위반했기 때문에 삽입 작업이 실패했습니다.

테이블 이름 바꾸기

다음은 테이블 이름을 바꾸는 ALTER TABLE 명령의 구문입니다.

ALTER TABLE table-name
  RENAME TO new-table-name;

`table-name`은 현재 테이블 이름이고, `new-table-name`은 테이블에 새로 지정할 이름입니다. 예를 들어, `Book` 테이블의 이름을 `Books`로 변경해 보겠습니다.

ALTER TABLE Book
  RENAME TO Books;

pgAdmin 사용

지금까지는 SQL 셸에서 작업을 실행했습니다. 이제 pgAdmin을 사용하여 이러한 작업을 시각적으로 수행하는 방법을 살펴보겠습니다.

새 열 추가

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

ALTER TABLE Book
  ADD author VARCHAR(50);

단계 4) 실행 버튼을 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 5) 열이 추가되었는지 확인하려면 다음을 수행하세요.

  1. 왼쪽 탐색에서 데이터베이스를 클릭합니다.
  2. 데모를 확장합니다.
  3. 스키마를 확장합니다.
  4. 공개를 확장합니다.
  5. 테이블을 확장합니다.
  6. 책을 펼치세요.
  7. 열을 확장합니다.

PostgreSQL ALTER TABLE 예시

아래와 같이 열이 추가되어야 합니다.

PostgreSQL ALTER TABLE 예시

테이블 열 이름 바꾸기

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

단계 4) 실행 버튼을 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 5) 변경 사항이 성공적으로 적용되었는지 확인하려면 이전처럼 도서 테이블 열을 펼치세요.

PostgreSQL ALTER TABLE 예시

이제 열은 다음과 같아야 합니다.

PostgreSQL ALTER TABLE 예시

열이 성공적으로 변경되었습니다.

열의 기본값 설정

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

단계 4) 실행 버튼을 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 5) 테스트하려면 쿼리 편집기에서 다음 명령을 실행하십시오.

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

단계 6) 이제 테이블을 쿼리하여 book_author 열에 기본값이 삽입되었는지 확인할 수 있습니다.

PostgreSQL ALTER TABLE 예시

검사 제약 조건 추가

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

단계 4) 실행 버튼을 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 5) 이를 테스트하려면 쿼리 편집기에 다음 쿼리를 입력하고 실행 버튼을 클릭하십시오.

INSERT INTO Book
VALUES(7, '최고의 PostgreSQL Book', 'Gregory Bush');

PostgreSQL ALTER TABLE 예시

다음이 반환됩니다.

PostgreSQL ALTER TABLE 예시

테이블 이름 바꾸기

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

ALTER TABLE Book
  RENAME TO Books;

단계 4) 실행 버튼을 클릭하세요.

PostgreSQL ALTER TABLE 예시

단계 5) 테이블 이름이 변경되었는지 확인하려면 데이터베이스 > 데모 > 스키마 > 공용 > 테이블을 확장하세요.

PostgreSQL ALTER TABLE 예시

테이블 이름이 성공적으로 변경되었습니다.

이 튜토리얼에 사용된 데이터베이스 다운로드

자주 묻는 질문

ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type 구문을 사용하세요. 값 변환이 필요한 경우에는 USING 절을 추가하세요. 예를 들어 ALTER COLUMN price TYPE numeric USING price::numeric 와 같이 사용합니다. PostgreSQL 해당 열을 다시 작성하고 기존 데이터가 새 유형에 맞는지 확인합니다.

기본값이 휘발성인 경우에만 해당됩니다. 왜냐하면 PostgreSQL 11. 상수 기본값을 사용하는 ADD COLUMN은 행을 다시 작성하지 않고 카탈로그를 즉시 업데이트합니다. 함수를 호출하는 기본값을 사용하는 경우에도 전체 테이블 재작성과 강력한 잠금이 발생합니다.

그렇지 않습니다. PostgreSQL 제약 조건을 제자리에서 변경할 수 없습니다. DROP CONSTRAINT 명령으로 기존 제약 조건을 삭제한 다음 ADD CONSTRAINT 명령으로 수정된 제약 조건을 추가하십시오. 두 명령 모두 트랜잭션으로 묶어 테이블에 제약 조건이 없는 상태가 되지 않도록 하십시오.

쉼표로 구분하여 여러 작업을 나열하십시오: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL 모든 변경 사항을 한 번에 적용하므로 속도가 빠르고 테이블의 일관성이 유지됩니다.

ALTER TABLE table_name ADD PRIMARY KEY (column) 또는 ADD CONSTRAINT pk_name PRIMARY KEY (column)을 사용하십시오. 해당 열에는 고유하고 null이 아닌 값이 저장되어야 합니다. PostgreSQL 키가 생성될 때 자동으로 고유한 인덱스를 생성합니다.

RENAME 명령은 시스템 카탈로그에서 테이블 이름만 업데이트합니다. 저장된 행, 인덱스 및 제약 조건은 그대로 유지되며 영향을 받지 않습니다. 이전 이름을 참조하는 뷰 또는 함수는 나중에 업데이트해야 할 수 있습니다.

AI 어시스턴트는 설명된 변경 사항을 기반으로 ALTER TABLE 스크립트를 작성하고, ADD, RENAME 및 제약 조건 단계를 올바른 순서로 정렬하며, 형변환을 위한 USING 절을 추가합니다. 또한 대규모 테이블을 재작성하거나 과도한 잠금을 사용하는 작업에 대해 경고 표시를 합니다.

예. AI 코파일럿은 마이그레이션을 검토하고, 잠금이나 전체 테이블 재작성에 대해 경고하며, 배치 처리 또는 동시 인덱스 구축을 제안하고, 래핑을 권장합니다.ping 트랜잭션 변경으로 스키마 업데이트 배포가 더욱 안전해집니다.

이 게시물을 요약하면 다음과 같습니다.