Sponsored Content
Top Forums Programming MYSQL - trigger update on record insert or update Post 302888668 by barrydocks on Sunday 16th of February 2014 04:52:24 PM
Old 02-16-2014
MYSQL - trigger update on record insert or update

Right I have a MYSQL database with table1 with 3 columns, colA, colB and colC. I want to combine the data in the 3 columns into a 4th column names col_comb. Here's the SQL command that works:
Code:
UPDATE table1 SET `col_comb` = CONCAT( `colA` , ' - ', `colB` , ', ', `colC` );

So now I want this to happen automaitically if a record is either inerted or updated in table1. I have tried setting up a trigger but it is not possible to use UPDATE in a trigger, here's an example:
php - MySql Error: Can't update table in stored function/trigger because it is already used by statement which invoked this stored function/trigger - Stack Overflow

Any suggestions on how to achieve this?

Thanks
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk script to update header record

I am using HP UX and think this may be done with awk but bot sure. I have a file with a several header records and undeneath many detail records I need to put in the header record the number of detail records above this header record and number of detail records below this header record Header... (5 Replies)
Discussion started by: klut
5 Replies

2. UNIX and Linux Applications

update trigger

hi all, i hope i am posting this /beginner) question in the right forum: i want to create an update trigger, which rolls back a transaction if a record of a table is updated. the table has - amongst others - a field 'statusid' - if a record in this table has the statusid X and it is attempted... (0 Replies)
Discussion started by: kalinkula
0 Replies

3. Shell Programming and Scripting

Update trigger for unix file (solaris)

Hello, from log error file of process that i's updating in append mode, i need to capture the new entries for every day. How i can know and save only the new errors? This it's a sample of error log file (oas report server engine) thanks and regards Fran (2 Replies)
Discussion started by: fran61
2 Replies

4. Shell Programming and Scripting

Insert/Update using sed

Hi, I have a xml file (Config.xml) with following entry <Date="" Node1="50" Groups="20"> Now I want to use sed to insert/update the Date field with the latest date say - 20120711. I can't use a simple replace command becuase the Date field could be blank ("") or sometimes could have value in... (9 Replies)
Discussion started by: vivek_damodaran
9 Replies

5. Programming

MYSQL - trigger to track changes to fields on update

So I have a php web application that allows updating of records. I would like to track the changes of only the fields that have changed. There are plenty of how to's that involve recreating the original row in a separate table with an additional time/date stamp column but I think this is a big... (1 Reply)
Discussion started by: barrydocks
1 Replies

6. UNIX for Dummies Questions & Answers

Mysql: How to update value in 27000 rows?

Hello, some member created 27000 posts in wrong section (lol :D) so i need to edit all his entries to get new section ID. SELECT * FROM `phpbb_topics` WHERE `topic_first_poster_name` LIKE "%ozerway%"; this will select all his topics... the column with forum id is named "forum_id" and... (3 Replies)
Discussion started by: postcd
3 Replies

7. UNIX for Dummies Questions & Answers

How to update DNS record in Solaris 5.10?

Hi I have a DNS server running on Solaris 5.10, I need to update ip address of two urls defined on our dns server how do i do that? and do i need to restart dns/named service after? how do i restart the service? Thanks (4 Replies)
Discussion started by: arocker
4 Replies

8. Shell Programming and Scripting

Insert one table and update another with shellscript

I have a problem with my shell script. I want to insert data from file to table1(empty) and then, compare table1 with table2 and update some fields. The first part is correct, but the second part does not work. The only way it works is if after the first part I truncate table1 and run the script... (1 Reply)
Discussion started by: nika_mill
1 Replies
CREATE 
TRIGGER(7) SQL Commands CREATE TRIGGER(7) NAME
CREATE TRIGGER - define a new trigger SYNOPSIS
CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] } ON table [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE funcname ( arguments ) DESCRIPTION
CREATE TRIGGER creates a new trigger. The trigger will be associated with the specified table and will execute the specified function func- name when certain events occur. The trigger can be specified to fire either before the operation is attempted on a row (before constraints are checked and the INSERT, UPDATE, or DELETE is attempted) or after the operation has completed (after constraints are checked and the INSERT, UPDATE, or DELETE has completed). If the trigger fires before the event, the trigger can skip the operation for the current row, or change the row being inserted (for INSERT and UPDATE operations only). If the trigger fires after the event, all changes, including the last insertion, update, or dele- tion, are ``visible'' to the trigger. A trigger that is marked FOR EACH ROW is called once for every row that the operation modifies. For example, a DELETE that affects 10 rows will cause any ON DELETE triggers on the target relation to be called 10 separate times, once for each deleted row. In contrast, a trigger that is marked FOR EACH STATEMENT only executes once for any given operation, regardless of how many rows it modifies (in particular, an operation that modifies zero rows will still result in the execution of any applicable FOR EACH STATEMENT triggers). In addition, triggers may be defined to fire for a TRUNCATE, though only FOR EACH STATEMENT. If multiple triggers of the same kind are defined for the same event, they will be fired in alphabetical order by name. SELECT does not modify any rows so you cannot create SELECT triggers. Rules and views are more appropriate in such cases. Refer to in the documentation for more information about triggers. PARAMETERS
name The name to give the new trigger. This must be distinct from the name of any other trigger for the same table. BEFORE AFTER Determines whether the function is called before or after the event. event One of INSERT, UPDATE, DELETE, or TRUNCATE; this specifies the event that will fire the trigger. Multiple events can be specified using OR. table The name (optionally schema-qualified) of the table the trigger is for. FOR EACH ROW FOR EACH STATEMENT This specifies whether the trigger procedure should be fired once for every row affected by the trigger event, or just once per SQL statement. If neither is specified, FOR EACH STATEMENT is the default. funcname A user-supplied function that is declared as taking no arguments and returning type trigger, which is executed when the trigger fires. arguments An optional comma-separated list of arguments to be provided to the function when the trigger is executed. The arguments are literal string constants. Simple names and numeric constants can be written here, too, but they will all be converted to strings. Please check the description of the implementation language of the trigger function about how the trigger arguments are accessible within the function; it might be different from normal function arguments. NOTES
To create a trigger on a table, the user must have the TRIGGER privilege on the table. Use DROP TRIGGER [drop_trigger(7)] to remove a trigger. In PostgreSQL versions before 7.3, it was necessary to declare trigger functions as returning the placeholder type opaque, rather than trigger. To support loading of old dump files, CREATE TRIGGER will accept a function declared as returning opaque, but it will issue a notice and change the function's declared return type to trigger. EXAMPLES
in the documentation contains a complete example. COMPATIBILITY
The CREATE TRIGGER statement in PostgreSQL implements a subset of the SQL standard. The following functionality is currently missing: o SQL allows triggers to fire on updates to specific columns (e.g., AFTER UPDATE OF col1, col2). o SQL allows you to define aliases for the ``old'' and ``new'' rows or tables for use in the definition of the triggered action (e.g., CRE- ATE TRIGGER ... ON tablename REFERENCING OLD ROW AS somename NEW ROW AS othername ...). Since PostgreSQL allows trigger procedures to be written in any number of user-defined languages, access to the data is handled in a language-specific way. o PostgreSQL only allows the execution of a user-defined function for the triggered action. The standard allows the execution of a number of other SQL commands, such as CREATE TABLE as the triggered action. This limitation is not hard to work around by creating a user- defined function that executes the desired commands. SQL specifies that multiple triggers should be fired in time-of-creation order. PostgreSQL uses name order, which was judged to be more convenient. SQL specifies that BEFORE DELETE triggers on cascaded deletes fire after the cascaded DELETE completes. The PostgreSQL behavior is for BEFORE DELETE to always fire before the delete action, even a cascading one. This is considered more consistent. There is also unpre- dictable behavior when BEFORE triggers modify rows that are later to be modified by referential actions. This can lead to constraint viola- tions or stored data that does not honor the referential constraint. The ability to specify multiple actions for a single trigger using OR is a PostgreSQL extension of the SQL standard. The ability to fire triggers for TRUNCATE is a PostgreSQL extension of the SQL standard. SEE ALSO
CREATE FUNCTION [create_function(7)], ALTER TRIGGER [alter_trigger(7)], DROP TRIGGER [drop_trigger(7)] SQL - Language Statements 2010-05-14 CREATE TRIGGER(7)
All times are GMT -4. The time now is 07:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy