Baron,

Thanks a lot
Adding the columns to the end works...

Olaf


On 5/30/07 2:13 PM, "Baron Schwartz" <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> Olaf Stein wrote:
>> Hey all,
>> 
>> I asked this before (a while back) and have gotten some answers that solve
>> my problem partially only.
>> 
>> ------- old message ----------
>> 
>> I have a table with 205 columns. When an update statement updates a row in
>> this table I want a trigger that creates a record of the old row in a
>> separate table.
>> The following works fine when not too many columns need to be written into
>> the other table
>> 
>> CREATE TRIGGER track_table
>> BEFORE UPDATE ON table FOR EACH ROW
>> BEGIN
>> INSERT INTO table_track (value1,value2) VALUES (OLD.value1,old.value2);
>> END;
>> 
>> Is the any way of using OLD for all columns or generally another way of
>> doing this.
>> 
>> ------- old message ----------
>> 
>> 
>> One answer (thanks btw) suggested to do this:
>> 
>> INSERT INTO table_track SELECT * FROM table WHERE key_col=OLD.key_col;
>> 
>> This works fine, requires however that both tables have the same structure
>> (nr of columns, order, etc). I would like to add an autoincrement ID and a
>> timestamp to the record written by the trigger and do not want to have a
>> timestamp field in the original table.
>> 
>> Is there any other way of doing this?
>> The only other idea I have (and I am not sure if this would even work) is to
>> select the column headers from information_schema and loop through them
>> building the actual insert statement.
>> 
> 
> If your columns are the same other than the ID and timestamp, and the two
> extra 
> columns come last in the destination table, you could SELECT *, NULL, NOW()
> FROM....
> 
> Otherwise I think you will have to list the columns explicitly.
> 
> You could write a script that will generate the triggers for you fairly
> easily. 
>   Maybe that will help ease the pain of maintaining things if your schema
> changes.
> 
> Baron





-------------------------
Olaf Stein
DBA
Center for Quantitative and Computational Biology
Columbus Children's Research Institute
700 Children's Drive
phone: 1-614-355-5685
cell: 1-614-843-0432
email: [EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to