programing

포스트그리 재설정SQL 기본 키 - 1

linuxpc 2023. 5. 31. 15:24
반응형

포스트그리 재설정SQL 기본 키 - 1

Postgre의 기본 키를 재설정하는 방법이 있습니까?채워진 테이블에서 SQL 테이블을 1에서 다시 시작하시겠습니까?

현재 1000000 이상의 숫자를 생성하고 있습니다.저는 모든 데이터를 그대로 유지하면서 모든 것을 초기화하고 1로 시작하기를 원합니다.

1번부터 다시 시작하도록 시퀀스를 재설정하는 가장 좋은 방법은 다음을 실행하는 것입니다.

ALTER SEQUENCE <tablename>_<id>_seq RESTART WITH 1

그래서, 예를 들어,users표는 다음과 같습니다.

ALTER SEQUENCE users_id_seq RESTART WITH 1

https://stackoverflow.com/a/5272164/5190 에서 더 나은 옵션을 확인하십시오.

자동으로 증분되는 기본 키(예: 데이터 유형이 있는 열)serial primary key)는 시퀀스와 연결됩니다.다음을 사용하여 모든 시퀀스에 대한 다음 값을 설정할 수 있습니다.setval(<seqname>, <next_value>)기능.실제로 기능을 실행하려면 다음과 같이 사용해야 합니다.SELECT setval(<seqname>, <next_value>)

직렬을 사용할 때 자동으로 생성되는 시퀀스의 이름은 다음과 같습니다.<table>_<column>_seq

TRUNCATE TABLE table_name RESTART IDENTITY;

모든 데이터가 삭제됩니다.

아마도 나와 같은 것을 찾는 몇몇 사용자들이 있을 것입니다.

@hypish는 실제로 자동 증분 기본 키를 사용하여 새 레코드를 삽입하는 것은 시퀀스를 다음과 같이 명시적으로 사용하는 것과 같습니다.

INSERT INTO MyTable (id, col1, ...) VALUES (MySeq.nextval(), val1, ...)

따라서 첫 번째 ID를 1로 하려면 시퀀스를 0으로 설정해야 합니다.그러나 범위를 벗어났으므로 ALTER SEQUECE 문을 사용해야 합니다.테이블 메뉴에 번호라는 일련 필드가 있는 경우 다음과 같이 입력합니다.

ALTER SEQUENCE menu_number_seq RESTART

완벽하게 일을 해낼 겁니다

먼저 테이블을 비운 다음 기본 키를 재설정합니다.

테이블 인구를 가정해 보겠습니다.

delete from population

ALTER SEQUENCE population_id_seq" RESTART WITH 1

@ZootHii 잘라내기 테이블_name RESTART ID 캐스케이드;

언급URL : https://stackoverflow.com/questions/3819292/reset-postgresql-primary-key-to-1

반응형