[SQL] 포스트 그레스에서 재설정 자동 증가 카운터
SQL포스트 그레스에서 재설정 자동 증가 카운터
나는이 함께했는데, 어떤 값으로 테이블의 자동 증가 필드를 강제로 싶습니다
ALTER TABLE product AUTO_INCREMENT = 1453
과
ALTER SEQUENCE product RESTART WITH 1453;
ERROR: relation "your_sequence_name" does not exist
나는 포스트 그레스에 새로운 해요 :(
나는 ID와 이름 필드와 테이블 제품이
해결법
-
==============================
1.당신은 ID 열이있는 테이블 제품을 만든 경우, 다음 순서는 단순히 (이다, $ {테이블} _ $ {열} _seq) 오히려 product_id_seq 제품이라고하지만,하지 않습니다.
당신은 ID 열이있는 테이블 제품을 만든 경우, 다음 순서는 단순히 (이다, $ {테이블} _ $ {열} _seq) 오히려 product_id_seq 제품이라고하지만,하지 않습니다.
이것은 당신이 필요로하는 ALTER 시퀀스 명령입니다 :
ALTER SEQUENCE product_id_seq RESTART WITH 1453
당신은 \ DS를 사용하여 데이터베이스의 시퀀스는 psql의에서 명령을 볼 수 있습니다. 당신이 당신의 열에 대한 기본 제약에서 \ D 제품과 모양을 할 경우, NEXTVAL (...) 호출이 너무 시퀀스 이름을 지정합니다.
-
==============================
2.여기 당신이 찾고있는 제품 테이블에 대한 당신의 순서를 가정하고 있다는 명령은 product_id_seq입니다 :
여기 당신이 찾고있는 제품 테이블에 대한 당신의 순서를 가정하고 있다는 명령은 product_id_seq입니다 :
-
==============================
3.다음 명령은 당신을 위해이 작업을 자동으로 수행 : 이것은 또한 테이블의 모든 데이터가 삭제됩니다. 그러니 조심해.
다음 명령은 당신을 위해이 작업을 자동으로 수행 : 이것은 또한 테이블의 모든 데이터가 삭제됩니다. 그러니 조심해.
TRUNCATE TABLE someTable RESTART IDENTITY;
-
==============================
4.시퀀스 카운터를 설정하려면 :
시퀀스 카운터를 설정하려면 :
setval('product_id_seq', 1453);
당신이 모르는 경우 시퀀스 이름은 pg_get_serial_sequence 기능을 사용 :
select pg_get_serial_sequence('product', 'id'); pg_get_serial_sequence ------------------------ public.product_id_seq
매개 변수는 테이블 이름과 열 이름입니다.
아니면 그냥 프롬프트 psql의에서 \ D 제품을 실행
=> \d product Table "public.product" Column | Type | Modifiers --------+---------+------------------------------------------------------ id | integer | not null default nextval('product_id_seq'::regclass) name | text |
-
==============================
5.방문자의 편의를 위해 코멘트로 변환
방문자의 편의를 위해 코멘트로 변환
그것은 올바른 구문이 무엇인지이 메시지에서 명확하지 않다. 그것은:
ALTER SEQUENCE product_id_seq RESTART WITH 1453;
-
==============================
6.- 순서의 변경 시작 값
- 순서의 변경 시작 값
ALTER SEQUENCE project_id_seq RESTART 3000;
동일하지만, 동적 :
SELECT SETVAL('project_id_seq', (SELECT MAX(id) + 1 FROM project));
나는 SELECT의 사용을 방해한다 동의하지만 작동합니다.
출처 : https://kylewbanks.com/blog/Adding-or-Modifying-a-PostgreSQL-Sequence-Auto-Increment
-
==============================
7.당신이 GUI에서 자동 증가를 재설정하려는 경우, 다음이 단계를 수행하십시오.
당신이 GUI에서 자동 증가를 재설정하려는 경우, 다음이 단계를 수행하십시오.
-
==============================
8.당신은 당신이 다음 명령을 사용할 수 있습니다에 대한 다음 값을 재설정 할 것인지 IDENTITY 열이있는 테이블이있는 경우 :
당신은 당신이 다음 명령을 사용할 수 있습니다에 대한 다음 값을 재설정 할 것인지 IDENTITY 열이있는 테이블이있는 경우 :
ALTER TABLE <table name> ALTER COLUMN <column name> RESTART WITH <new value to restart with>;
-
==============================
9.당신이 다음 쿼리를 사용하여 시퀀스 이름을 가져올 수있는 자동 증가를 재설정합니다.
당신이 다음 쿼리를 사용하여 시퀀스 이름을 가져올 수있는 자동 증가를 재설정합니다.
통사론:
SELECT pg_get_serial_sequence(‘tablename’, ‘ columnname‘);
예:
SELECT pg_get_serial_sequence('demo', 'autoid');
쿼리는 "Demo_autoid_seq"로 autoid의 시퀀스 이름을 반환합니다 그런 다음 autoid를 다시 다음과 같은 쿼리를 사용하여
통사론:
ALTER SEQUENCE sequenceName RESTART WITH value;
예:
ALTER SEQUENCE "Demo_autoid_seq" RESTART WITH 1453;
-
==============================
10.시퀀스 ID의 사용을 얻으려면
시퀀스 ID의 사용을 얻으려면
SELECT pg_get_serial_sequence('tableName', 'ColumnName');
이 의지는 TABLENAME의 ColumnName 서열 같이 시퀀스 ID를 제공합니다
마지막 씨앗 번호 사용을 얻는
select currval(pg_get_serial_sequence('tableName', 'ColumnName'));
당신이 순서 ID를 알고있는 경우 이미 직접 사용합니다.
select currval(tableName_ColumnName_seq);
그것은 것입니다 당신에게 마지막으로 종자 수를 제공
씨앗 번호 사용을 재설정하려면
ALTER SEQUENCE tableName_ColumnName_seq RESTART WITH 45
from https://stackoverflow.com/questions/5342440/reset-auto-increment-counter-in-postgres by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 동적 정렬 SQL 저장 프로 시저 내에서 (0) | 2020.04.17 |
---|---|
[SQL] RANK ()와 DENSE_RANK () 오라클 함수의 차이점은 무엇입니까? (0) | 2020.04.17 |
[SQL] 방법에 2008 SQL Server를 사용하여 해제 IDENTITY_INSERT를 켭니다? (0) | 2020.04.17 |
[SQL] PostgreSQL의를 사용하여 동일한 쿼리에서 여러 행을 업데이트 (0) | 2020.04.17 |
[SQL] 열이 MySQL은 비어 있거나 null의 경우는 어떻게 확인합니까? (0) | 2020.04.17 |