create orreplace table t1 (
x int,
row_start SYS_TYPE as row start invisible,
row_end SYS_TYPE as row end invisible,
period for system_time (row_start, row_end))
with system versioning;
create orreplace table tf engine=FEDERATED connection='mysql://root@127.0.0.1:MASTER_MYPORT/test/t1';
show create table tf;
Table Create Table
tf CREATE TABLE `tf` (
`x` int(11) DEFAULT NULL,
`row_start` SYS_TYPE DEFAULT '1971-01-01 00:00:00.000000' INVISIBLE,
`row_end` SYS_TYPE DEFAULT '1971-01-01 00:00:00.000000' INVISIBLE
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `CONNECTION`='mysql://root@127.0.0.1:MASTER_MYPORT/test/t1'
# INSERT
insert into t1 values (1);
select * from tf;
x 1
insert into tf (x) values (2);
select * from t1;
x 1 2
select * from tf;
x 1 2
# UPDATE
update tf set x= x + 2;
select *, check_row(row_start, row_end) from t1 for system_time all
order by x;
x check_row(row_start, row_end) 1 HISTORICAL ROW 2 HISTORICAL ROW 3 CURRENT ROW 4 CURRENT ROW
# DELETE
delete from tf;
select *, check_row(row_start, row_end) from t1 for system_time all
order by x;
x check_row(row_start, row_end) 1 HISTORICAL ROW 2 HISTORICAL ROW 3 HISTORICAL ROW 4 HISTORICAL ROW
select * from tf;
x
# MDEV-15966: Behavior for TRUNCATE versioned table is not documented
# andnot covered by tests
# As of standard, TRUNCATE on versioned tables is forbidden
truncate tf; ERROR HY000: Got error10000'Error on remote system: 4137: System-versioned tables do not support TRUNCATE TABLE' from FEDERATED
delete history from t1;
select * from t1 for system_time all;
x
# REPLACE
create orreplace table t2 (
id int primary key, y int,
row_start SYS_TYPE as row start invisible,
row_end SYS_TYPE as row end invisible,
period for system_time (row_start, row_end))
with system versioning;
create orreplace table t2f engine=FEDERATED connection='mysql://root@127.0.0.1:MASTER_MYPORT/test/t2';
insert t2f (id, y) values (1, 2); replace t2f (id, y) values (1, 3);
select *, check_row(row_start, row_end) from t2 for system_time all
order by y;
id y check_row(row_start, row_end) 12 HISTORICAL ROW 13 CURRENT ROW
# VIEW
create orreplace view vt1 as select * from tf;
insert into vt1 values (3);
update vt1 set x= x + 1;
select *, check_row(row_start, row_end) from t1 for system_time all
order by x;
x check_row(row_start, row_end) 3 HISTORICAL ROW 4 CURRENT ROW
delete from vt1;
select *, check_row(row_start, row_end) from t1 for system_time all
order by x;
x check_row(row_start, row_end) 3 HISTORICAL ROW 4 HISTORICAL ROW
# multi-UPDATE
delete from t1;
delete history from t1;
delete from t2;
delete history from t2;
insert into t1 values (1);
insert into t2 values (2, 2);
update tf, t2f set tf.x= 11, t2f.y= 22;
select *, check_row(row_start, row_end) from t1 for system_time all
order by x;
x check_row(row_start, row_end) 1 HISTORICAL ROW 11 CURRENT ROW
select *, check_row(row_start, row_end) from t2 for system_time all
order by y;
id y check_row(row_start, row_end) 22 HISTORICAL ROW 222 CURRENT ROW
drop view vt1;
drop tables t1, t2, t2f, tf;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.