사용자 정의 SERIAL의 자동 증가를 구현하기 위해 값별로 그룹화
도전:
블로그 시스템에는 id(시퀀스), 카테고리(varchar), Category_id(int)라는 세 개의 열이 있는 기사 테이블이 있습니다. 카테고리 ID가 테이블 전체에서 고유한 상태를 유지하면서 각 카테고리 내에서 자동으로 증가하기를 원합니다.
사용자 정의 로직의 유효하지 않음:
두 개의 별도 쿼리와 논리 코드를 사용하여 이를 구현하려고 하면 다중 사용자 환경에서 동시성 문제가 발생할 수 있습니다.
권장 솔루션:
category_id 열 삭제:
카테고리 순위의 동적 계산:
SELECT id, category, ROW_NUMBER() OVER (PARTITION BY category ORDER BY id) AS category_id FROM article;
예:
INSERT INTO article(category) VALUES ('stackoverflow');
결과:
<code>SELECT * FROM article WHERE category = 'stackoverflow'; +----+-----------+---------+ | id | category | category_id | +----+-----------+---------+ | 10 | stackoverflow | 1 | | 11 | stackoverflow | 2 | +----+-----------+---------+</code>
위 내용은 데이터베이스의 범주 내에서 사용자 정의 SERIAL 자동 증가를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!