MySQL 트리거를 사용하여 ID 값으로 열을 자동으로 업데이트하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-07 19:36:02
원래의
212명이 탐색했습니다.

How to Automatically Update a Column with the ID Value Using a MySQL Trigger?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿