On 11/11/11 4:39 AM, Jonas Pettersson wrote:
DECLARE GLOBAL TEMPORARY TABLE SESSION.memtable (id int, name
varchar(10)) NOT LOGGED
Hi Jonas,
It's likely that you are running with autocommit turned on (this is the
default). Your temporary table was declared in a way which causes it to
throw away all of its rows at commit. You can preserve rows over commit
by adding another clause to the DECLARE GLOBAL TEMPORARY TABLE
statement. The following example may help:
ij> connect 'jdbc:derby:memory:db;create=true';
ij> declare global temporary table session.t_default (id int) not logged;
0 rows inserted/updated/deleted
ij> declare global temporary table session.t_preserve (id int) on commit
preserve rows not logged;
0 rows inserted/updated/deleted
ij> insert into session.t_default( id ) values ( 1 );
1 row inserted/updated/deleted
ij> insert into session.t_preserve( id ) values ( 1 );
1 row inserted/updated/deleted
ij> select * from session.t_default;
ID
-----------
0 rows selected
ij> select * from session.t_preserve;
ID
-----------
1
1 row selected
Hope that's useful,
-Rick