|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
RE: Insert into more tables
From: Anhaus, Thomas (thomas.anhaus
sap.com)
Date: Wed Feb 11 2004 - 07:06:28 CST
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Dusan Kolesar wrote :
>Hello,
>I want to insert row into more then one table.
>List of tabels into which I want to insert is in the next table:
>CREATE TABLE "ADMIN"."EVENT_TABLES"
>(
> "TB_NAME" Varchar (30) ASCII
>)
>I want to do it inside the trigger.
>I don't know if is it posible at all, because in the manual is written:
>INSERT [INTO] <table_name> ...
><table_name> ::= [<owner>.]<identifier>
>There is nothing like table name can be a variabe.
>Thank you very much.
>Dusan
It seems that you need dynamic SQL inside your trigger, i.e. the insert statements
for the additional tables have to be constructed at runtime of the trigger. Example :
Assuming a table TEST has 2 columns Col1 integer and Col2 char(20)
CREATE TRIGGER INS_TEST FOR TEST AFTER INSERT EXECUTE (
VAR
tableName char(32);
insertStmt char(200);
SELECT TB_NAME FROM ADMIN"."EVENT_TABLES;
WHILE $RC = 0 DO
BEGIN
FETCH INTO :tableName;
IF $RC = 0
THEN
BEGIN
insertStmt = 'INSERT INTO ' || tableName || ' VALUES (' || CHR(Col1) || ',''' || col2 || ''')';
execute insertStmt;
END;
END;
IF $RC <> 100 THEN STOP (-31001, 'unexpected error ' || chr($rc));
)
Regards,
Thomas
--
Dusan Kolesar
Helsinska 19
040 13 Kosice
Slovakia
e-mail : dusankolesar
szm.sk
ICQ# : 160507424
--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe: http://lists.mysql.com/maxdb?unsub=thomas.anhaus
sap.com
--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]