집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 외래 키를 기반으로 시퀀스 열을 생성하는 방법은 무엇입니까?
MySQL: 외래 키를 기반으로 시퀀스 열 생성
레거시 데이터베이스에서 각 외래 키에 대한 숫자 순서를 기록하는 시퀀스 열 추가 키는 데이터 검색 및 구성을 향상시킬 수 있습니다. 다음 테이블이 있다고 가정합니다.
ID | ACCOUNT | some_other_stuff |
---|---|---|
1 | 1 | ... |
2 | 1 | ... |
3 | 1 | ... |
4 | 2 | ... |
5 | 2 | ... |
6 | 1 | ... |
목표는 각 계정에 대해 별도로 증가하는 SEQ 열을 만드는 것입니다. 결과는 다음과 같습니다.
ID | ACCOUNT | SEQ | some_other_stuff |
---|---|---|---|
1 | 1 | 1 | ... |
2 | 1 | 2 | ... |
3 | 1 | 3 | ... |
4 | 2 | 1 | ... |
5 | 2 | 2 | ... |
6 | 1 | 4 | ... |
이를 달성하려면 SQL 트리거를 활용할 수 있습니다.
CREATE TRIGGER trg_mytable_bi BEFORE INSERT ON mytable FOR EACH ROW BEGIN DECLARE nseq INT; SELECT COALESCE(MAX(seq), 0) + 1 INTO nseq FROM mytable WHERE account = NEW.account; SET NEW.seq = nseq; END;
이 트리거는 mytable 테이블에 삽입된 모든 새 행이 관련 계정에 따른 고유 일련번호입니다.
위 내용은 MySQL에서 외래 키를 기반으로 시퀀스 열을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!