2013-10-21 5 views
0

MySQL에서 on update과 관련하여 도움이 필요합니다.어디에서 '업데이트시'를 사용할 수 있습니까?

현재 나는 Foreign Key에 의해 관련 keywords이있는 테이블 documentscreatedupdated 행을 설정해야합니다.

키워드에 대한 트리거를 생성하여 관련 문서의 updated 시간을 업데이트하고 Documents 테이블을 새로 만들어야합니다.

방아쇠 대신 on update을 사용할 수 있습니까?

on update 문장을 검색하여 전체 레코드가 업데이트되는지, 얼마나 많은 열을 사용할 수 있는지 등을 살펴 보았습니다. 그러나 MySQL 문서의 주제를 찾지 못했습니다.

도움이 될 것입니다.

답변

0

이 문제를 구현하기 위해 트리거를 사용할 필요가 없습니다. 그 이유는 created이 한 번만 쓰고 논리적으로 의미가 있기 때문입니다. 따라서 을 입력 할 때 NOW()과 같은 것을 입력하면 행이 삽입됩니다. 그것은

CREATE TABLE t1 ( 
    s TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); 

하시면서 : -

이제 마지막 변경 시간 소인의 논리적 의미를 가지고 updated 용으로 다음 타임 스탬프 필드를 정의하면 ON UPDATE CURRENT_TIMESTAMP 절을 지정할 수 있습니다. 나는. 일반적으로 업데이트 이벤트의 경우 트리거를 사용해야합니다. MySQL이 내장 솔루션을 제공하는 경우입니다. 더 많은 것을 말하자면,이 은 당신이 그것을 사용할 것으로 예상되는 경우입니다. 즉 그것이 MySQL에 존재하는 이유입니다.

'언제'는 의견을 기반으로하지만 논리적 인 '업데이트 날짜'의 구현이 일반적인 목적입니다.

+0

감사합니다. 'on update' 절에 대한 주제가 있습니까? 그것에 대해 아무 것도 찾을 수 없었습니다. – JorgeeFG

+0

'주제'는 무엇을 의미합니까? 원한다면 당신은 그때를 통해서만 검색해야합니다. 그러나 공식 매뉴얼 페이지의 설명이이 기능의 일반적인 목적을 명확히하기에 충분하다고 생각합니다. –

+0

주제에 관해서는'업데이트 중 '에 대한 공식적인 문서를 의미합니다. 매우 명확하지만, 무엇을 할 수 있는지 알고 싶습니다. 그것과 함께, 트리거를 생성하는 경우 등 – JorgeeFG