본문 바로가기
MySql

MySQL mysql에서 업데이트 된 행 선택

by 베이스 공부 2021. 1. 12.
반응형

업데이트 된 행을 선택하는 간단한 방법이 있습니까?

오랫동안 읽지 않은 데이터를 삭제할 수 있도록 행을 읽을 때마다 타임 스탬프를 저장하려고합니다.

먼저 SELECT 쿼리를 먼저 실행하고 조금 느리지 만 간단한 솔루션을 찾았습니다.

 UPDATE foo AS t, (SELECT id FROM foo WHERE statement=1)q
 SET t.time=NOW() WHERE t.id=q.id

그러나 나는 이것을하기위한 정상적인 방법을 찾고 싶다.

나는 또한 시간을 먼저 업데이트하고 업데이트 된 행을 선택하는 것이 훨씬 쉬울 것이라고 생각하지만 이것에 대해서도 아무것도 찾지 못했습니다.

 

해결 방법

 

다음과 같이 time 열을 선언하십시오.

CREATE TABLE foo (
    ...
    time TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(),
    ...)

그런 다음 행이 업데이트 될 때마다 열이 자동으로 업데이트됩니다.

최신 정보:

SELECT 중에 자동으로 업데이트하는 방법이 없다고 생각하므로 두 단계로 수행해야합니다.

UPDATE foo
SET time = NOW()
WHERE <conditions>;

SELECT <columns>
FROM foo
WHERE <conditions>;

time 열을 포함하지 않는 한 이것이 작동한다고 생각합니다. 최대한의 안전을 위해 트랜잭션을 사용하여 다른 쿼리가 방해하지 않도록해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/15034136

 

 

반응형

댓글