<  *  | *** >

Transac sql 

  • create
  • insert
  • insert
  • update
  • delete

-- ###########################
-- RUNNING clear.sh

/*
sure mode, no confirmation prompt
clearing directory INTERNAL_FILES_DIR (../STORAGE/INT) ...
done
clearing directory MAX_PERF_FILES_DIR (../STORAGE/MAX_PERF) ...
done
clearing directory TRANSAC_FILES_DIR (../STORAGE/TRANSAC) ...
done
*/

-- ###########################
-- RUNNING _v1.17.10_F28doc_transac.sql
--

Transac sql

SB is not a transactionnal database, but there is small transactionnal mode in SB
This mode can be used to store users, messages
The goal is to avoid having another database for that
Corruption is possible in bi mode, but it is not possible in transac mode
Update with sql in possible in transac mode but not in bi mode
Parameters TCP_PORT_TRANSAC and TRANSAC_FILES_DIR must be set in stormbase.conf

create

create table table_name(col1 text, col2 text, ...)
create table tb_message(id text, json text, status text);
table_created
OK

insert

insert into table_name('txt1', 'txt2', ...)
insert into tb_message values('AAA','text AAA',1);
line_inserted
OK

insert into tb_message values('BBB','text BBB','1');
line_inserted
OK

insert into tb_message values('CCC','text BBB1','1');
line_inserted
OK

insert

select <*|col1, col2, ...> from table_name
<|where col1='txt1' and col2='txt2' ...>
select * from tb_message;
idjsonstatus
AAAtext AAA1
BBBtext BBB1
CCCtext BBB11

select id, json, id, status from tb_message where id='CCC' and status=2;
idjsonidstatus

update

update table_name set col1='txt1', col2='txt2'
<|where col1='txt1' and col2='txt2' ...>
update tb_message set status='2', json='new' where id='AAA';
#rows updated
1

update tb_message set status='2', json='newCCC' where id='CCC';
#rows updated
1

select * from tb_message;
idjsonstatus
AAAnew2
BBBtext BBB1
CCCnewCCC2

select id, json, id, status from tb_message where id='CCC' and status=2;
idjsonidstatus
CCCnewCCCCCC2

delete

delete table_name
<|where col1='txt1' and col2='txt2' ...>
delete tb_message where id='AAA';
#rows deleted
1

select * from tb_message;
idjsonstatus
BBBtext BBB1
CCCnewCCC2

delete tb_message;
#rows deleted
2

select * from tb_message;
idjsonstatus

delete tb_message;
#rows deleted
0

shutdown;