카테고리 없음

[mysql] varchar autoincrement로 기본 키를 생성하는 mysql 트리거를 만들고 싶습니다.

행복을전해요 2021. 2. 21. 03:42

( MySQL 테이블 기본 키를 일부 접두사로 자동 증가시키는 방법에서 빌림 )

이미 생성 된 사용자 테이블이 있다고 가정하면 자동으로 ID를 생성 하는 트리거작성할 수 있습니다 . MySQL에 의해 자동 생성 된 ID를 보관할 더미 테이블이 필요하므로 트리거가 새 고유 ID를 쉽게 가져올 수 있습니다.

더미 (순서) 표 :

CREATE TABLE user_seq
(
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
  );
  

트리거 :

DELIMITER $$
CREATE TRIGGER tg_user_insert
BEFORE INSERT ON user
FOR EACH ROW
BEGIN
  INSERT INTO user_seq VALUES (NULL);
    SET NEW.user_id = LAST_INSERT_ID();
    END$$
    DELIMITER ;
    

나는 기존 스키마에 대한 일부 시드 데이터를 생성해야하는 경우를 처리하는 데 사용했습니다 (예 : 스키마를 변경할 수 없음). 나는 이것을 개발 환경에서 사용하고 있다는 점에 유의하십시오 . 이와 같은 성능이나 다른 생산 가치가 얼마나 될지 전혀 모릅니다. 유능한 dba가 더 많은 통찰력을 제공 할 수 있기를 바랍니다. 그러나 의문점이 있기 때문에 비슷한 문제가 있었고 대안을 찾을 수 없었습니다. 다른 사람에게 도움이되기를 바랍니다.



출처
https://stackoverflow.com/questions/22079954