Files
TJWaterServer/script/sql/create/operation.sql
2023-03-31 14:51:49 +08:00

56 lines
1.4 KiB
SQL

create table operation
(
id bigserial primary key
, redo text not null
, undo text not null
, parent integer references operation(id) on delete cascade
, redo_child integer references operation(id) -- must update before delete
, redo_cs text not null
, undo_cs text not null
);
insert into operation (id, redo, undo, redo_cs, undo_cs) values (0, '', '', '', '');
create table current_operation
(
id bigint primary key references operation(id) -- must update before delete
);
insert into current_operation (id) values (0);
create table snapshot_operation
(
id bigint primary key references operation(id) on delete cascade
, tag text not null unique
);
create table restore_operation
(
id bigint primary key references operation(id) -- set after reading inp
);
insert into restore_operation (id) values (0);
create table batch_operation
(
id bigserial primary key
, redo text not null
, undo text not null
, parent integer references operation(id) on delete cascade
, redo_child integer references operation(id) -- must update before delete
, redo_cs text not null
, undo_cs text not null
);
insert into batch_operation (id, redo, undo, redo_cs, undo_cs) values (0, '', '', '', '');
create type operation_table_option as enum ('operation', 'batch_operation');
create table operation_table
(
option operation_table_option primary key
);
insert into operation_table (option) values ('operation');