Hi Mamatha,
I believe that you also need an INSERT trigger in addition to the UPDATE
trigger. The following should work. I had to make a couple changes to
your script:
o The triggers should insert into tidlggls, not tidlggls1
o I changed the type of tidlggls.create_date to DATE and the type of
tidlggls.time_stamp to TIMESTAMP.
Hope this helps,
Rick
connect 'jdbc:derby:memory:db;create=true';
CREATE TABLE tidlrblt
(
blt_number INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
WITH 1, INCREMENT BY 1),
blt VARCHAR(4000) NOT NULL,
size INTEGER NOT NULL,
min_max_size INTEGER NOT NULL,
CONSTRAINT blt_pk PRIMARY KEY (blt_number)
);
CREATE TABLE tidlggls
(
blt_number INTEGER DEFAULT 0 NOT NULL,
min_max_size INTEGER DEFAULT 0 NOT NULL,
create_date date,
glossary_status CHAR (2) NOT NULL,
application_ver CHAR (8) NOT NULL,
time_stamp timestamp
);
CREATE TRIGGER gls_blt_trg
AFTER UPDATE ON tidlrblt
REFERENCING OLD AS UPDATEDROW
FOR EACH ROW
INSERT INTO tidlggls(blt_number,create_date, glossary_status,
time_stamp,min_max_size,application_ver )
VALUES (UPDATEDROW.blt_number, CURRENT_DATE, '00' , CURRENT_TIMESTAMP,
UPDATEDROW.min_max_size,'7.0.1');
CREATE TRIGGER gls_blt_trg_inst
AFTER INSERT ON tidlrblt
REFERENCING NEW AS INSERTEDROW
FOR EACH ROW
INSERT INTO tidlggls(blt_number,create_date, glossary_status,
time_stamp,min_max_size,application_ver )
VALUES (INSERTEDROW.blt_number, CURRENT_DATE, '00' , CURRENT_TIMESTAMP,
INSERTEDROW.min_max_size,'7.0.1');
insert into tidlrblt( blt, size, min_max_size ) values ( 'foo', 3, 3 );
select * from tidlggls;
Mamatha Kodigehalli Venkatesh wrote:
Hello ,
Here are my 2 tables tidlrblt and tidlggls.
I want to insert an record into tidlggls table as soon as an record is
inserted into tidlrblt table using a trigger.
But currently the trigger gls_blt_trg is able to insert into tidlggls
table only when an existing record is updated in tidlrblt table.
CREATE TABLE tidlrblt
(
blt_number INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
WITH 1, INCREMENT BY 1),
blt VARCHAR(4000) NOT NULL,
size INTEGER NOT NULL,
min_max_size INTEGER NOT NULL,
CONSTRAINT blt_pk PRIMARY KEY (blt_number)
);
CREATE TABLE tidlggls
(
blt_number INTEGER DEFAULT 0 NOT NULL,
min_max_size INTEGER DEFAULT 0 NOT NULL,
create_date CHAR (8) NOT NULL,
glossary_status CHAR (2) NOT NULL,
application_ver CHAR (8) NOT NULL,
time_stamp CHAR (26) NOT NULL
);
CREATE TRIGGER gls_blt_trg
AFTER UPDATE ON tidlrblt
REFERENCING OLD AS UPDATEDROW
FOR EACH ROW
INSERT INTO tidlggls1(blt_number,create_date, glossary_status,
time_stamp,min_max_size,application_ver )
VALUES (UPDATEDROW.blt_number, CURRENT_DATE, '00' , CURRENT_TIMESTAMP,
UPDATEDROW.min_max_size,'7.0.1');
Thanks
Mamatha