Postgres에서 NOT NULL 제약 조건 제거

Postgres Eseo Not Null Jeyag Jogeon Jegeo



PostgreSQL과 같은 관계형 데이터베이스에서 제약 조건은 데이터 무결성을 유지하고 테이블 열에 특정 규칙을 적용하는 데 중요합니다. 이러한 제약 중 하나는 'NOT NULL' 제약입니다. 이 자습서에서는 NOT NULL 제약 조건의 개념을 살펴보고 PostgreSQL에서 제약 조건을 만들고 제거하는 단계별 가이드를 제공합니다.

NOT NULL 제약 조건이란 무엇입니까?

NOT NULL 제약 조건은 특정 열에 대해 테이블의 모든 행이 null이 아닌 값을 가져야 하는 null 값을 열에 포함할 수 없도록 합니다.

튜토리얼 요구 사항:

이 게시물에 제공된 지침을 따르기 위해 다음 요구 사항이 있다고 가정합니다.







  1. 머신에 설치된 PostgreSQL 서버
  2. 기본 SQL 지식
  3. 제약 조건, 함수 등과 같은 데이터베이스 테이블 개체를 생성할 수 있는 권한

예시 표:

not null 제약 조건이 포함된 열이 있는 샘플 테이블을 설정하여 시작하겠습니다. WordPress의 wp_users 테이블과 유사한 기본 테이블을 설정하는 다음 create table 문을 사용하십시오.



테이블 작성 wp_users(
ID 직렬 기본 키,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NULL이 아님,
user_url VARCHAR(100),
user_registered TIMESTAMP NULL이 아님 기본값 current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NULL이 아님 기본값 0,
display_name VARCHAR(250) NOT NULL
);

주어진 쿼리에서 대부분의 열에 NOT NULL 제약 조건이 포함되어 있음을 알 수 있습니다.



지정된 열에서 NOT NULL 제약 조건을 만드는 가장 효율적인 방법은 테이블을 만드는 동안입니다. 이렇게 하면 테이블에 추가되는 모든 데이터가 제약 조건 규칙을 준수하는지 확인할 수 있습니다.





그러나 기존 테이블에 제약 조건을 추가하면 기존 데이터가 아닌 제약 조건 뒤에 추가되는 데이터에만 규칙이 적용됩니다. 이로 인해 특히 큰 테이블에서 불일치가 발생할 수 있습니다.

NOT NULL 제약 조건 추가

경우에 따라 기존 테이블에 NOT NULL 제약 조건을 추가할 수 있습니다. 예를 들어 ALTER TABLE 명령 다음에 ALTER COLUMN 절을 사용할 수 있습니다.



구문은 다음과 같습니다.

ALTER TABLE table_name
ALTER COLUMN column_name SET NOT NULL;

table_name을 대상 테이블로 바꾸고 column_name을 제약 조건을 적용하려는 대상 열로 바꿉니다.

구속 확인

PSQL 유틸리티의 '\d' 명령을 사용하여 주어진 테이블에 제약 조건이 존재하는지 확인할 수 있습니다.

\d 테이블 이름

예:

sample_db=# \d wp_users;

결과 출력은 다음과 같습니다.

NOT NULL 제약 조건 제거

지정된 열에서 NOT NULL 제약 조건을 제거할 수도 있습니다. 이를 위해 다음과 같이 ALTER TABLE 및 ALTER COLUMN 절을 사용할 수 있습니다.

ALTER TABLE table_name
ALTER COLUMN column_name DROP NOT NULL;

예를 들어 wp_users 테이블의 user_url 열에서 NOT NULL 제약 조건을 제거하려면 다음 쿼리를 실행할 수 있습니다.

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

이렇게 하면 테이블에서 제약 조건이 삭제됩니다.

결론

이 튜토리얼에서는 PostgreSQL에서 NOT NOLL 제약 조건으로 작업하는 방법에 대해 살펴보았습니다. 또한 주어진 열에서 기존 NOT NULL 제약 조건을 삭제하는 방법도 살펴보았습니다.