Postgres 수동 순서 변경
시퀀스를 특정 값으로 설정하려고합니다.
SELECT setval('payments_id_seq'), 21, true
오류가 발생합니다.
ERROR: function setval(unknown) does not exist
사용도 ALTER SEQUENCE
작동하지 않는 것 같습니다?
ALTER SEQUENCE payments_id_seq LASTVALUE 22
이것을 어떻게 할 수 있습니까?
참조 : https://www.postgresql.org/docs/current/static/functions-sequence.html
괄호가 잘못 배치되었습니다.
SELECT setval('payments_id_seq', 21, true); # next value will be 22
그렇지 않으면 setval
하나 또는 두 개의 인수가 필요한 단일 인수로 호출 합니다.
이 구문은 모든 버전의 PostgreSQL 에서 유효하지 않습니다 .
ALTER SEQUENCE payments_id_seq LASTVALUE 22
이것은 작동합니다 :
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
다음과 같습니다.
SELECT setval('payments_id_seq', 22, FALSE);
현재 매뉴얼 ALTER SEQUENCE
및 시퀀스 기능에 대한 추가 정보 .
참고 setval()
예상하는 하나 (regclass, bigint)
또는 (regclass, bigint, boolean)
. 위의 예에서는 형식화되지 않은 리터럴을 제공하고 있습니다. 그것도 작동합니다. 그러나 타입 변수를 함수에 공급하면 함수 타입 해상도를 만족시키기 위해 명시적인 타입 캐스트 가 필요할 수 있습니다 . 처럼:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
반복되는 작업의 경우 다음에 관심이있을 수 있습니다.
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
기본 RESTART
번호를 저장합니다.이 번호는 RESTART
값이없는 후속 통화에 사용됩니다 . 마지막 부분에는 Postgres 8.4 이상이 필요합니다.
사용하다 select setval('payments_id_seq', 21, true);
setval
3 개의 매개 변수를 포함합니다.
- 첫 번째 매개 변수는
sequence_name
- 두 번째 매개 변수는 다음입니다
nextval
- 세 번째 매개 변수는 선택 사항입니다.
setval의 세 번째 매개 변수에서 true 또는 false를 사용하는 방법은 다음과 같습니다.
SELECT setval('payments_id_seq', 21); // Next nextval will return 22
SELECT setval('payments_id_seq', 21, true); // Same as above
SELECT setval('payments_id_seq', 21, false); // Next nextval will return 21
시퀀스 이름, 다음 시퀀스 값의 하드 코딩을 피하고 빈 열 테이블을 올바르게 처리하는 더 좋은 방법은 다음과 같습니다.
SELECT setval(pg_get_serial_sequence('table_name', 'id'), coalesce(max(id), 0)+1 , false) FROM table_name;
여기서 table_name
테이블의 이름은, id
는 IS primary key
테이블을
setval('sequence_name', sequence_value)
참고 URL : https://stackoverflow.com/questions/8745051/postgres-manually-alter-sequence
'Programing' 카테고리의 다른 글
Valgrind에 의해 여전히 도달 가능한 누출 감지 (0) | 2020.06.16 |
---|---|
가운데 HTML 입력 텍스트 필드 자리 표시 자 (0) | 2020.06.16 |
숭고한 텍스트 2 여러 줄 편집 (0) | 2020.06.16 |
신속한 사건 (0) | 2020.06.16 |
jquery를 통해 앵커 클릭을 어떻게 시뮬레이트 할 수 있습니까? (0) | 2020.06.16 |