PostgreSQL 자동 증가 기본 키를 설정하는 방법은 무엇입니까?

How Setup Postgresql Auto Increment Primary Key



요청 시 생성되는 열에 대한 특정 값을 원할 때 PostgreSQL에서 테이블을 작성하고 유지 관리하는 경우가 있을 수 있습니다. 이는 테이블의 기본 키로 작동하는 id 열에 특히 해당됩니다. 운 좋게도 SERIAL 의사 유형을 사용하면 자동 증가 정수 계열을 편리하게 만들 수 있습니다. 시리즈는 일련의 인덱스 또는 정수를 생성하는 PostgreSQL의 데이터베이스 객체 유형입니다. PostgreSQL 시퀀스는 고유한 정수 문자열을 생성하므로 새 테이블을 생성할 때 기본 키로 사용하기에 적합합니다. PostgreSQL에서 자동 증가 메나가 무엇인지 보여주고 이 가이드 전체에서 SERIAL 의사 유형을 사용할 것입니다.

통사론:

자동 증가 기본 키를 만드는 일반적인 구문은 다음과 같습니다.







>>CREATE TABLE 테이블 이름( ID연속물);

이제 CREATE TABLE 선언을 더 자세히 살펴보겠습니다.



  • PostgreSQL은 먼저 시리즈 엔터티를 생성합니다. 시리즈의 다음 값을 생성하고 필드의 기본 참조 값으로 설정합니다.
  • PostgreSQL은 계열이 숫자 값을 생성하기 때문에 암시적 제한 NOT NULL을 id 필드에 적용합니다.
  • id 필드는 시리즈의 보유자로 할당됩니다. id 필드 또는 테이블 자체가 생략되면 시퀀스가 ​​삭제됩니다.

자동 증가의 개념을 얻으려면 이 가이드의 그림을 계속 진행하기 전에 PostgreSQL이 시스템에 마운트 및 구성되어 있는지 확인하십시오. 데스크탑에서 PostgreSQL 명령줄 셸을 엽니다. 작업하려는 서버 이름을 추가하고, 그렇지 않으면 기본값으로 두십시오. 작업하려는 서버에 있는 데이터베이스 이름을 작성하십시오. 변경하지 않으려면 기본값으로 두십시오. 테스트 데이터베이스를 사용할 것이므로 추가했습니다. 기본 포트 5432에서 작업할 수도 있지만 변경할 수도 있습니다. 결국 선택한 데이터베이스의 사용자 이름을 제공해야 합니다. 변경하지 않으려면 기본값으로 두십시오. 선택한 사용자 이름의 암호를 입력하고 키보드에서 Enter 키를 눌러 명령 셸 사용을 시작합니다.







SERIAL 키워드를 데이터 유형으로 사용:

테이블을 생성할 때 일반적으로 기본 열 필드에 키워드 SERIAL을 추가하지 않습니다. 즉, INSERT 문을 사용하는 동안 기본 키 열에 값을 추가해야 합니다. 그러나 테이블을 생성하는 동안 쿼리에서 키워드 SERIAL을 사용하면 값을 삽입하는 동안 기본 열 값을 추가할 필요가 없습니다. 살펴보겠습니다.

예 01:

두 개의 열 id와 name이 있는 Test 테이블을 만듭니다. 데이터 유형이 SERIAL이므로 열 ID가 기본 키 열로 정의되었습니다. 반면 컬럼명은 TEXT NOT NULL 데이터 타입으로 정의된다. 아래 명령어를 실행하여 테이블을 생성하면 아래 이미지와 같이 효율적으로 테이블이 생성됩니다.



>>테이블 만들기 테스트( ID직렬 기본 키, 이름 TEXT NOT NULL);

새로 생성된 TEST 테이블의 컬럼명에 값을 넣어보자. 열 ID에 값을 추가하지 않습니다. 아래와 같이 INSERT 명령을 사용하여 값이 성공적으로 삽입되었음을 알 수 있습니다.

>>테스트에 삽입(이름)가치('아크사'),('림샤'),('칸');

'Test' 테이블의 기록을 확인할 차례입니다. 명령 셸에서 아래 SELECT 명령을 시도하십시오.

>>선택하다*테스트에서;

아래 출력에서 ​​열 id에 대해 지정한 데이터 유형 SERIAL 때문에 INSERT 명령에서 값을 추가하지 않았음에도 불구하고 열 id에 일부 값이 자동으로 포함되었음을 알 수 있습니다. 이것이 SERIAL 데이터 유형이 자체적으로 작동하는 방식입니다.

예 02:

SERIAL 데이터 유형 열의 값을 확인하는 또 다른 방법은 INSERT 명령에서 RETURNING 키워드를 사용하는 것입니다. 아래 선언은 Test 테이블에 새 줄을 만들고 id 필드의 값을 생성합니다.

>>테스트에 삽입(이름)가치('하삼')귀국ID;

SELECT 쿼리를 사용하여 Test 테이블의 레코드를 확인하여 이미지와 같이 아래와 같은 출력을 얻었습니다. 다섯 번째 레코드가 테이블에 효율적으로 추가되었습니다.

>>선택하다*테스트에서;

예 03:

위의 삽입 쿼리의 대체 버전은 DEFAULT 키워드를 사용하는 것입니다. INSERT 명령에서 열 ID 이름을 사용하고 VALUES 섹션에서 값으로 DEFAULT 키워드를 제공합니다. 아래 쿼리는 실행 시 동일하게 작동합니다.

>>테스트에 삽입(ID, 이름)가치(기본, '레이스');

다음과 같이 SELECT 쿼리를 사용하여 테이블을 다시 확인해보자.

>>선택하다*테스트에서;

아래 출력에서 ​​볼 수 있듯이 기본적으로 열 ID가 증가하는 동안 새 값이 추가되었습니다.

예 04:

SERIAL 열 필드의 시퀀스 번호는 PostgreSQL의 테이블에서 찾을 수 있습니다. 이를 위해 pg_get_serial_sequence() 메소드가 사용됩니다. pg_get_serial_sequence() 메서드와 함께 currval() 함수를 사용해야 합니다. 이 쿼리에서는 pg_get_serial_sequence() 함수의 매개변수에 테이블 이름과 SERIAL 열 이름을 제공합니다. 보시다시피 테이블 테스트 및 열 ID를 지정했습니다. 이 방법은 아래 쿼리 예제에서 사용됩니다.

>>곡선 선택(pg_get_serial_sequence('시험', 'ID'));

currval() 함수가 시퀀스의 가장 최근 값인 5를 추출하는 데 도움이 된다는 점은 주목할 가치가 있습니다. 아래 그림은 성능이 어떻게 보이는지 보여줍니다.

결론:

이 가이드 튜토리얼에서는 SERIAL 의사 유형을 사용하여 PostgreSQL에서 자동 증가하는 방법을 보여주었습니다. PostgreSQL에서 시리즈를 사용하면 자동으로 증가하는 숫자 집합을 간단하게 구축할 수 있습니다. 우리의 그림을 참조로 사용하여 테이블 설명에 SERIAL 필드를 적용할 수 있기를 바랍니다.