select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq;
create table t1 (
XNo INT UNSIGNED,
Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START,
Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END,
PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)
) WITH SYSTEM VERSIONING ENGINE InnoDB;
INSERT INTO t1(XNo) VALUES(0);
INSERT INTO t1(XNo) VALUES(1);
INSERT INTO t1(XNo) VALUES(2);
INSERT INTO t1(XNo) VALUES(3);
INSERT INTO t1(XNo) VALUES(4);
INSERT INTO t1(XNo) VALUES(5);
INSERT INTO t1(XNo) VALUES(6);
INSERT INTO t1(XNo) VALUES(7);
INSERT INTO t1(XNo) VALUES(8);
INSERT INTO t1(XNo) VALUES(9);
SELECT XNo, Sys_end < '2038-01-19 03:14:07' FROM t1 FOR SYSTEM_TIME BETWEEN TIMESTAMP '0000-0-0 0:0:0' AND TIMESTAMP '2038-01-19 04:14:07';
XNo Sys_end < '2038-01-19 03:14:07'
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
DELETE FROM t1 WHERE XNo = 0;
SELECT XNo, Sys_end < '2038-01-19 03:14:07' FROM t1 FOR SYSTEM_TIME BETWEEN TIMESTAMP '0000-0-0 0:0:0' AND TIMESTAMP '2038-01-19 04:14:07';
XNo Sys_end < '2038-01-19 03:14:07'
0 1
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
DELETE FROM t1 WHERE XNo = 1;
SELECT XNo, Sys_end < '2038-01-19 03:14:07' FROM t1 FOR SYSTEM_TIME BETWEEN TIMESTAMP '0000-0-0 0:0:0' AND TIMESTAMP '2038-01-19 04:14:07';
XNo Sys_end < '2038-01-19 03:14:07'
0 1
1 1
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
DELETE FROM t1 WHERE XNo > 5;
CREATE VIEW vt1 AS SELECT XNo FROM t1;
SELECT XNo FROM vt1;
XNo
2
3
4
5
DELETE FROM vt1 WHERE XNo = 3;
SELECT XNo FROM vt1;
XNo
2
4
5
SELECT XNo, Sys_end < '2038-01-19 03:14:07' FROM t1 FOR SYSTEM_TIME BETWEEN TIMESTAMP '0000-0-0 0:0:0' AND TIMESTAMP '2038-01-19 04:14:07';
XNo Sys_end < '2038-01-19 03:14:07'
0 1
1 1
2 0
3 1
4 0
5 0
6 1
7 1
8 1
9 1
DROP VIEW vt1;
DROP TABLE t1;
SET @i = 0;
SELECT @i:=@i+1 AS No, trx_id > 0 AS A, begin_ts > '2015-1-1 0:0:0' AS B, commit_ts > begin_ts AS C, concurr_trx IS NULL AS D FROM INFORMATION_SCHEMA.INNODB_VTQ WHERE trx_id > @start_trx_id;
select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq;
CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
INSERT INTO t1(x, y) VALUES(3, 4);
INSERT INTO t1(x, y) VALUES(2, 3);
...
...
@@ -826,3 +827,38 @@ x y Sys_end
DROP TABLE t1;
DROP VIEW vt1_1;
DROP VIEW vt1_2;
SET @i = 0;
SELECT @i:=@i+1 AS No, trx_id > 0 AS A, begin_ts > '2015-1-1 0:0:0' AS B, commit_ts > begin_ts AS C, concurr_trx IS NULL AS D FROM INFORMATION_SCHEMA.INNODB_VTQ WHERE trx_id > @start_trx_id;
No A B C D
1 1 1 1 1
2 1 1 1 1
3 1 1 1 1
4 1 1 1 1
5 1 1 1 1
6 1 1 1 1
7 1 1 1 1
8 1 1 1 1
9 1 1 1 1
10 1 1 1 1
select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq;
CREATE TABLE t1(x INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
CREATE TABLE t2(x INT UNSIGNED) ENGINE=InnoDB;
START TRANSACTION;
INSERT INTO t1(x) VALUES(1);
COMMIT;
SET @i = 0;
SELECT @i:=@i+1 AS No, trx_id > 0 AS A, begin_ts > '2015-1-1 0:0:0' AS B, commit_ts > begin_ts AS C, concurr_trx IS NULL AS D FROM INFORMATION_SCHEMA.INNODB_VTQ WHERE trx_id > @start_trx_id;
No A B C D
1 1 1 1 1
select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq;
START TRANSACTION;
INSERT INTO t2(x) VALUES(1);
SAVEPOINT a;
INSERT INTO t1(x) VALUES(1);
ROLLBACK TO a;
COMMIT;
SET @i = 0;
SELECT @i:=@i+1 AS No, trx_id > 0 AS A, begin_ts > '2015-1-1 0:0:0' AS B, commit_ts > begin_ts AS C, concurr_trx IS NULL AS D FROM INFORMATION_SCHEMA.INNODB_VTQ WHERE trx_id > @start_trx_id;
select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq;
CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
INSERT INTO t1(x, y) VALUES
(1, 1000),
...
...
@@ -819,3 +820,8 @@ x y
8 8000
9 9000
DROP TABLE t1;
SET @i = 0;
SELECT @i:=@i+1 AS No, trx_id > 0 AS A, begin_ts > '2015-1-1 0:0:0' AS B, commit_ts > begin_ts AS C, concurr_trx IS NULL AS D FROM INFORMATION_SCHEMA.INNODB_VTQ WHERE trx_id > @start_trx_id;