반응형
업데이트 된 행을 선택하는 간단한 방법이 있습니까?
오랫동안 읽지 않은 데이터를 삭제할 수 있도록 행을 읽을 때마다 타임 스탬프를 저장하려고합니다.
먼저 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
반응형
'MySql' 카테고리의 다른 글
MySQL | 각 범주의 레코드를 하나만 선택하는 방법은 무엇입니까? (0) | 2021.01.12 |
---|---|
MySQL mysql 명령 줄에서 데이터베이스 복원 (0) | 2021.01.12 |
MySQL 삽입 트리거 후 MySQL이 작동하지 않음 (0) | 2021.01.11 |
MySQL Java에서 MySQL에 이미지 저장 (0) | 2021.01.11 |
MySQL CodeIgniter에서 query () 및 limit () 메서드를 결합하는 방법 (0) | 2021.01.11 |
댓글