난 그냥 궁금해서 나는 문서 확인 : https://dev.mysql.com/doc/refman/5.6/en/datetime.htmlMySQL 5.6 쿼리가 실행되거나 트랜잭션이 커밋되었을 때 삽입/업데이트시 타임 스탬프 값이 설정됩니까?
을하지만 쿼리가 실행되었을 때 타임 스탬프의 값의 측면에서 설정되어 특별히 경우 말을하지 않거나 그것의 일부 거래 때이었다 커밋 :
이CREATE TABLE some_schema.some_table (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
some_field VARCHAR(50) DEFAULT NULL,
last_changed_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
);
START TRANSACTION;
INSERT INTO some_schema.some_table (some_field) VALUES ("Foo");
INSERT INTO some_schema.some_table (some_field) VALUES ("Bar");
COMMIT;
그리고 분명히이가 너무 빨리 실행 때문에 같은 시간이 될 것이다 (그리고 마이크로은 내가 이해으로부터 제거됩니다) 동안 1 조 개 또는 뭔가 삽입을 실행하는 상상, 그 last_changed_ts
값이 될 것이다 그들은 모두 하나의 트랜잭션으로 커밋되었거나 서로간에 차이가 있기 때문에 동일합니다. INSERT 문이 실행될 때 sed?
실제로이 모든 것을 작성한 후에 트랜잭션을 시작하고, 삽입하고, 잠자기하고, 다시 삽입하고 자신을 확인하는 간단한 파이썬 스크립트를 설정하는 것이 쉽다는 것을 알고 있습니다. 나는 이미이 모든 것을 썼고 인터넷 검색을 할 때 빠른 대답을 찾을 수 없었다. 그래서 나는 그것을 남겨두고 다른 누군가는 흥미있는 2 센트를 던지기를 원한다. 그러나 그렇지 않다면 나는 간단한 테스트에 대한 나의 발견을 오는 날.
왜 커밋을 실행하기 전에 기다리지 않고 잠시 휴식을 취하고 현재 시간을 기록한 다음 커밋 할 수 있습니까? –
@PraveenE - yep는 분명히 그 일을 할 수있었습니다. 감사합니다. 파이썬은 내 시간의 대부분이가는 곳입니다. 그래서 나는 그 패러다임에서 생각하는 경향이 있지만 당신은 절대적으로 옳습니다. 필자는 4 줄을 작성하지 않았기 때문에 파이썬으로 받아 들일 것입니다. 그러나 나는 내일 통역사를 통해 그것을 할 것입니다. –
간단한 패러다임 전환 :) –