업데이트를 실행할 때… dateTime = now (); 업데이트 된 모든 행이 같은 날짜/시간을 갖습니까?

StackOverflow https://stackoverflow.com/questions/195173

문제

당신이 비슷한 것을 실행할 때 :

UPDATE table SET datetime = NOW();

1,000 000 000 레코드가있는 테이블에서 쿼리를 실행하는 데 10 초가 걸리면 모든 행이 똑같은 시간 (몇 분 및 초) 또는 시간이 다를 것입니까? 다시 말해, 쿼리가 시작된 시간이거나 각 행이 업데이트 될 때가 되나요?

MySQL을 실행하고 있지만 이것이 모든 DBS에 적용되고 있다고 생각합니다.

도움이 되었습니까?

해결책

http://dev.mysql.com/doc/refman/55.0/en/date-andtime-functions.html#function_now

"()는 성명서가 실행되기 시작한 시간을 나타내는 일정한 시간을 반환합니다. (저장된 루틴 또는 트리거 내에서 ()는 루틴 또는 트리거 진술이 실행되기 시작한 시간을 반환합니다.) sysdate ()의 동작은 MySQL 5.0.13으로 실행되는 정확한 시간을 반환합니다. "

다른 팁

최종 보고서가 당신에게 중요하다면 - 먼저 테스트하십시오. 문서화 된대로 작동해야한다고해서 그럴 것임을 의미하지는 않습니다. 의심스러운 경우 테스트하십시오!

양수인 NOW() 변수로 변수로 dateTime을 업데이트합니다.

update_date_time=now()

이제 이렇게 업데이트하십시오

UPDATE table SET datetime =update_date_time;

요구 사항에 따라 구문을 수정하십시오

동시에 업데이트는 원자력이어야합니다. 즉, 수행하는 데 얼마나 오래 걸 든 모든 것이 동시에 수행 된 것처럼 행동이 발생해야 함을 의미합니다.

다른 행동을 경험하고 있다면 이제 다른 DBMS를 변경해야합니다.

sqlite 답변은입니다

update TABLE set mydatetime = datetime('now');

다른 사람이 그것을 찾고있는 경우.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top