나는 name
이라는 열과 first_name_start
이라는 열을 가진 customer
이라는 테이블을 가지고 있습니다. first_name_start
이 SUBSTRING(name, 1, 4)
과 같아야합니다. 어떻게 이런 일이 일어나는가?이 MySQL 트리거를 어떻게 만듭니 까?
답변
DELIMITER $$
CREATE TRIGGER trigger_name BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
SET NEW.first_name_start = SUBSTRING(NEW.name, 1, 4);
END$$
CREATE TRIGGER trigger_name BEFORE UPDATE ON your_table
FOR EACH ROW
BEGIN
SET NEW.first_name_start = SUBSTRING(NEW.name, 1, 4);
END$$
DELIMITER ;
불행히도, 나는 이것을 시험 할 시간이 없었습니다. 완전히 잘못되었을 수 있습니다.
이것은 작동합니다 - 거의 동일한 것을 테스트했는데 삽입물 만 처리하지만 OP는 삽입/업데이트/모든 것을 지정하지 않습니다 – Erik
@Erik : OP가 업데이트에 대해 주석을 처리하도록 요청 했습니까? 그의 질문에. –
실제로 열로 필요하다면 first_name_start
을 추가하는 뷰를 만들면 어떨까요? 그런 다음 중복 된 데이터를 저장하지 않을 것이지만 마치 마치 사용자가 그대로 사용할 수 있습니다.
그것은 가장 논리적 인 일이며, 나는 할 수 있었으면 좋겠지 만, 그것은 충분히 잘 수행되지 않는다. –
흥미 롭습니다. 하위 문자열 열 (물론 트리거가없는 항목)이있는 곳에서 솔루션을 테스트 했습니까? 그렇다면 MySQL이 "가장 논리적 인"솔루션을 잘 수행 할 수 없다는 점이 다소 불행합니다. –
방금 쿼리를 실행하여'WHERE SUBSTRING (...')을 넣었습니다. 어색하게 느려졌습니다. –
- 1. mysql 쿼리에서이 배열을 어떻게 만듭니 까?
- 2. 이 관계형 테이블은 어떻게 만듭니 까?
- 3. 이 배열을 어떻게 만듭니 까? (PHP)
- 4. 런타임에 객체를 어떻게 만듭니 까?
- 5. 이벤트 구독자는 어떻게 만듭니 까?
- 6. 컨테이너 파일은 어떻게 만듭니 까?
- 7. 포인터의 배열은 어떻게 만듭니 까?
- 8. 제한된 AppDomain은 어떻게 만듭니 까?
- 9. JSON Array는 어떻게 만듭니 까?
- 10. 사전 항목은 어떻게 만듭니 까?
- 11. UISplitView를 수동으로 어떻게 만듭니 까?
- 12. Perl 클래스는 어떻게 만듭니 까?
- 13. Catalyst에서 세션을 어떻게 만듭니 까?
- 14. 게임 바닥을 어떻게 만듭니 까?
- 15. EDM에서 데이터베이스를 어떻게 만듭니 까?
- 16. 페이지 템플리트는 어떻게 만듭니 까?
- 17. 싱글턴 IEnumerable은 어떻게 만듭니 까?
- 18. 바이너리 패치는 어떻게 만듭니 까?
- 19. 모바일 사이트는 어떻게 만듭니 까?
- 20. 빈 op_array는 어떻게 만듭니 까?
- 21. gitosis에서 머리를 어떻게 만듭니 까?
- 22. RSS 피드는 어떻게 만듭니 까?
- 23. 동적 URL은 어떻게 만듭니 까?
- 24. 소셜 그래프는 어떻게 만듭니 까?
- 25. CruiseControl.Net에서 속성을 어떻게 만듭니 까?
- 26. 맞춤식 날짜는 어떻게 만듭니 까?
- 27. String에서 org.xml.sax.InputSource를 어떻게 만듭니 까?
- 28. Android에서 계기는 어떻게 만듭니 까?
- 29. 을 MySQL Workbench에 설치하려면 localhost에서 mysql 서버를 어떻게 만듭니 까? 이 질문에
- 30. MYSQL- 포럼 게시물에 대한 개별 테이블은 어떻게 만듭니 까?
테이블을 비정규 화해야합니까? –
어떤 조건에서이 트리거를 시작 하시겠습니까? 삽입물에서만 이름 필드를 업데이트합니까? 우리는 더 많은 정보가 필요합니다. –
'name' 컬럼에 대한 삽입과 갱신 모두. Nick, 나는 확신한다. 나는 비정규 화하지 않아도되지만, 내가 필요로하는 성능을 얻을 수 없었 으면 좋겠다. (나는 확인했다.) –