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 : [EMAIL PROTECTED]
ICQ# : 160507424


-- 
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

-- 
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to