집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 트리거를 사용하여 ID 값으로 열을 자동으로 업데이트하는 방법은 무엇입니까?
MySQL 트리거를 사용하여 ID 값으로 열 업데이트
MySQL 트리거를 사용하면 특정 이벤트가 발생할 때 자동으로 특정 작업을 수행할 수 있습니다. 데이터베이스 테이블. 이 경우 열이 null인 경우 열 값을 새로 삽입된 레코드의 ID 값으로 업데이트하는 트리거를 생성하려고 합니다.
이러한 트리거를 생성하는 SQL 문은 다음과 같습니다.
CREATE TRIGGER [trigger_name] BEFORE INSERT ON [table_name] FOR EACH ROW BEGIN IF NEW.group_id IS NULL THEN SET NEW.group_id = NEW.id; END IF; END
이 트리거는 지정된 테이블에 대한 INSERT 작업 전에 실행됩니다. 새 레코드에 대해 group_id 열이 null인지 확인합니다. 그렇다면 자동 생성된 기본 키인 id 열의 값으로 group_id를 설정합니다.
예
다음 표를 고려하세요.
CREATE TABLE table_name ( id INT NOT NULL AUTO_INCREMENT, group_id INT NULL, value VARCHAR(255) NOT NULL, PRIMARY KEY (id) );
지정된 group_id를 가진 레코드를 삽입하는 경우:
INSERT INTO table_name(value, group_id) VALUES ('a', 10);
트리거가 실행되지 않고 예상대로 데이터가 삽입됩니다.
id | group_id | value ---+----------+------ 1 | 10 | a
그러나 , group_id를 지정하지 않고 레코드를 삽입하는 경우:
INSERT INTO table_name(value) VALUES ('b');
트리거가 실행되고 group_id를 새로 삽입된 레코드의 ID로 설정합니다:
id | group_id | value ---+----------+------ 2 | 2 | b
참고: 기존 값을 덮어쓰지 않으려면 트리거가 group_id 열이 null인 경우에만 업데이트하도록 하는 것이 중요합니다.
위 내용은 MySQL 트리거를 사용하여 ID 값으로 열을 자동으로 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!