Tracking Forums, Newsgroups, Maling Lists
Home Scripts Tutorials Tracker Forums
 
  HOME    TRACKER    MYSQL




Is There Trigger Function In MySQL ?


It seems to me that there is no trigger function in MySQL but I am =
not sure.

Recently, I have a project which need the trigger function when MySQL =
database server receive a alert information and wake up some procedure. =
Is there any other method to do the same functionality of trigger as in =
ORACLE databse ?




View Complete Forum Thread with Replies

See Related Forum Messages: Follow the Links Below to View Complete Thread
Trigger On Replace Function
I have used the following query:


UPDATE jos_content SET title = REPLACE(title,'!','')

Now i want to use a trigger on this. How would I do this ?

MySQL Trigger
I am currently trying to create a trigger on one of my tables that before an insert it combines several of the fields and sets it to a field name called "data". These fields are not integers, they are strings of text.

The problem I am running into is that when I insert a row, the value of the field "data" gets set to zero.

Currently I am using the following (pseudo code)

Code:


SET @data = (SELECT domain FROM domains WHERE id = @domain_id) + ':' + (SELECT timeout FROM domains WHERE id = @domain_id)

Mysql Trigger Support
I would like to know if the following trigger functionality is supported in mySql v4 ?

i) I have one table called organisation, with lots of children tables. When a user
updates one of the children tables, I would like to UPDATE a column in table Organisation, i.e. Organisation.Lastupdate. Is this available in the latest version i.e. 4.*

ii) I would like to delete some child rows, if a row in the parent table is deleted. I can not for historical, schema definition reasons, use a cascade delete constraint.

Trigger Php Script Using MySQL
can a mysql trigger call a php script? If so, how? I basically want a php script to be called everytime a field in the mysql table receives a certain value.

Mysql Trigger Error
I've got a table test with 2 fields (Name (Varchar) and ischanged (tynyint(1))). I'm trying to create a trigger on this table, pls can some1 tell me whatz wrong with this syntax:

CREATE TRIGGER trig_test
AFTER INSERT ON test
FOR EACH ROW
BEGIN
SET NEW.isChanged = 1;
END.

How To Use Trigger And Store Procedure In Mysql?
I am using mysql 4.0.20. Based on my knowlegdge, trigger and store procedure feature is not avialable for this version. However, I really need them to fulfill a task, which is to automatically export data to a file when there is new record instert. Is there a way to do it in version 4.0.20? Need your help urgently!

IF Function,GROUP BY,aggregate Function Problems
Yep, I have all those problems in the title. So I'll explain each one at a time - I did have another thread relating to this very same query but I thought it was time to update where I am with the query because at the moment I feel like I am getting nowhere!

The query I have basically searches through an items_ordered table through each product and checks to see whether the item is VATable or not. This is not where I have the problem though. Where I am really having the first problem is when I am trying to use the IF function to check if the TOTAL of an order is over £300. IF it is then I multiply it my 0.95 (i.e. 5% off). With the query below I get no errors but neither do I get the desired result. It's as though it couldn't even see it. =....

Mysql Function
i am hosting my website on a hosting website server.I made Mysql database there. I noticed one thing when i insert data in tables they have a colum called "function" with drop down box where they have values like ASCII,CHAR,SOUNDEX, UCASE, LCASE, COUNT,AVG any many other.

I don't pick any of them. But I am just wondering if I need to pick either ASCII or char?

MYSQL Function For 'or'?
In the context of a where statement, what is the correct way to say 'or' as in the following:

SELECT * FROM table WHERE field1 [or] field 2 LIKE "%$query%"

This is for a basic search feature where people are tending to misspell words, I'd like to add a search words column that will also be searched.

Mysql 4 Function From A Mysql 5 Function
I found this function on the mysql website :

CREATE FUNCTION substrCount(x TEXT, delim varchar(100)) RETURNS int
RETURN (length(x) - length(REPLACE(x, delim, ''))) / length(delim);

That works perfectly with mysql 5. But when I try to import this to mysql 4, I have an error :

suse-server:/partages # mysql mybase <function-add.sql> output.tab
ERROR 1064 (42000) at line 1: You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '(x TEXT, delim varchar(100)) returns int
return (length(x)-length(REPLACE(x, del' at line 1

Mysql Function
is there any function in mysql which tells you what the last row inserted into a table is?

Function In MYSQL
I am using MYSQL 5.0.22. My database name is 'normal'. It could contain 2 tables, such as Itemgroup & Itemlist. I tried with the FUNCTION query for Concatination purpose. Funtion name is Serial, The Query is,
CREATE FUNCTION Serial (s CHAR(10)) RETURNS CHAR(25) RETURN CONCAT('SALES',s,'IND');
It would say the error as followes,
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'normal'
Is the Query right or wrong? or How will I used (or) handiled the FUNCTION option?
If any one knows, please guid me

Warning: Mysql() [function.mysql]: Access Denied For User 'apache'@'localhost' (using
my script is not connecting to my database, i get this error

Warning: mysql() [function.mysql]: Access denied for user 'apache'@'localhost' (using password: NO)

Mysql IF Function Question
I am trying to incorporate an IF statement into a query so that it will show a P after a phone number if this phone is a personal cell phone. This is being used in a view that I use in multiple locations to create phone listings of all employees in the directory.
My query is:

CREATE VIEW phonelisting as select
users.UserID,
concat_ws(' ', users.fname, users.minitial, users.lname) userName,
users.positionTitle AS positionTitle,
group_concat(distinct concat('(', substr(CAST(did.DIDID as CHAR), 1, 3), ') ', substr(CAST(did.DIDID as CHAR), 4, 3), '-', substr(CAST(did.DIDID as CHAR),7 , 4)) order by CAST(did.DIDID as CHAR) ASC separator '<br />') dids,
group_concat(DISTINCT CAST(phone.ExtensionID as CHAR) ORDER BY CAST(phone.ExtensionID as CHAR) ASC SEPARATOR '<br />') extensions,
users.homePhone,
users.pager,
group_concat(distinct concat('(', substr(cell.number, 1, 3), ') ', substr(cell.number, 4, 3), '-', substr(cell.number,7 , 4)) order by cell.number ASC separator '<br />') AS cellphones
FROM
users
LEFT JOIN
cellrelationship
ON
cellrelationship.userID = users.UserID
LEFT JOIN
cell
ON
cell.CellID = cellrelationship.cellID AND cell.hideListing <> &#391;'
LEFT OUTER JOIN
phonerelationship
ON
users.UserID = phonerelationship.UserID
LEFT OUTER JOIN
phone
ON
phone.PhoneID = phonerelationship.PhoneID
LEFT OUTER JOIN
DID
ON
did.ExtensionID = phone.ExtensionID
WHERE
users.userStatus <> 'term'
AND
users.hideListing <> &#391;'
AND
(users.termdate = '' OR users.termdate >= UNIX_TIMESTAMP(CURRENT_DATE))
AND
users.hireDate <= UNIX_TIMESTAMP(CURRENT_DATE)
GROUP BY
users.UserID
ORDER BY
userName
I would like to have the P show up at the end of each phone listed(Only if it is a personal phone) on the line with:


group_concat(distinct concat('(', substr(cell.number, 1, 3), ') ', substr(cell.number, 4, 3), '-', substr(cell.number,7 , 4)) order by cell.number ASC separator '<br />') AS cellphones
The way I determine if it is a personal cell or company cell is by the value of cell.Type being Company or personal.

Any suggestions?

*I am running mysql 5.0.27

Mysql Date Function
I just want to know if this command below is acceptable in MySQL form? Because, I have made a web form processing in which the date is basing as EST time (east standard time in US) and I'm in ASIA. I just found a mysql function date thru googling..

$sql = "INSERT INTO table SET
date = SUBDATE(NOW(), INTERVAL 1 DAY)";

MySQL Have A Decode Function??
Oracle has Decode(asdf,asdf,adf,adf) etc.

does MySQL have an equivilant?

UNION Function How To In MySQL 3
How to write this line in mysql3 where there is no UNION function?

(SELECT * FROM table1) UNION (SELECT * FROM table1) ORDER BY date LIMIT 0,5;

MySQL Now() Function Problem
I am new to MySQL and my problem is with storing a datetime value in a
table. I created a table with a column designated as DATETIME. I
fill it with the NOW() function. No matter whether I default it or
try and set with code, all I get is a date! Even running "SELECT
Now()" only returns a date.

If I run the following query:

Date_Format(now(), GET_FORMAT(DATETIME,'USA'))

it returns a datetime value. However, if I use that SAME query to try
and fill the column during insert, I still get only a date value.

I've even tried some date calculations like Now() + 0 but still get
ONLY a date, no time info.

Recursive Function In Mysql ?
My table
--------

id -- value -- ref_id
----------------------
1--rqwer-0
2--23ew-1
3--23ewe-2
4--123ff-1
5--de123-4

Now i want to take the values like id and refer has to be same and one more condition ,
i need the output as

1,2,4,5

How can i get ?

ENCRYPT Function In Mysql
My password column is encrypted using ENCRYPT() function. When I execute the following query in phpmyadmin, it is showing 0 records. Because everytime, encrypt function is executed, it is returning new value. But my squirrelmail application is decrypting the password correctly.

$query="SELECT * FROM users WHERE email = 'xxx@xxx.com' and password=ENCRYPT('smart')";

how to check whether the user entered password is correct as in mysql?

Mysql Stored Function ...
I'm new to creating stored procedure - can someone tell me where i've gone wrong here - the below code refuses to execute. Essentially, all i want do it something like;

INSERT INTO sometable(a,b,c) VALUE(12,'12',itypes('information'));

if the category 'information' doesn't exist in the event_types table, it's create and the id return - else just returns the id

CREATE FUNCTION .`itypes` ( _tname VARCHAR(45))
RETURNS INT
BEGIN
DECLARE tmp INT;
SELECT id INTO tmp FROM event_types WHERE tname LIKE _tname;
IF (id IS NULL) THEN INSERT INTO event_types ( tname ) VALUES ( _tname );
END IF;
SELECT id INTO tmp FROM event_types WHERE tname LIKE _tname;
RETURN tmp
END

Init_cap() Function In MYSQL
Is there any string function available to get the First Character alone with upper case in MYSQL5.0

For Ex:
remma.

Output:
Remma

Push/pop Function For MySQL
if MySQL has a push/pop function? I'm creating a table for news items, with three rows - one for the date, one for the title, and one for the URL. What I want to do is limit the number of news items held in the table to 10. For example, if there are 10 entries in the table already (date/title/url sets) and I add another item, I want to put it at the top of the table and pop the bottom value off the table.

I know I can do this by exporting the table to an array in PHP, then messing with it there and writing it back to the table, but this would take a lot of MySQL queries I think.

Is there an easy solution to this problem I'm not seeing?

MySQL IF() Function Problem
I want to select 2 dates from a database (fields called start_date and end_date). However, I want to in some way make the returned value of end_date equal to that of start_date if end_date is null.
I've tried using the if() function as follows:

$result = mysql_query("select start_date, if(end_date is null, start_date) from events");

Where events is my table name. This doesn't work. I've tried it with quotes around start_date in the if but that just returns the word start_date.


Variable Function In MySQL
Is there a way to use a 'variable function' in MySQL, e.g.Code:

SELECT @hash:= value FROM prefs WHERE key = 'hash_method';
-- @hash = SHA1
SELECT @hash('test string');

So the variable @hash stores the current hash method in the `prefs` table.
This method does not work, is there a way to do this?

An IMPLODE() Type Function For MySQL??
I'm looking to pull data (just one column) from mysql which is over multiple rows.

e.g.

apple
banana
orange
pear

Now, I actually want the data in this format in just one row:

"apple,banana,orange,pear"

Does mysql offer some sort of "SELECT IMPLODE(',', my_column) AS foo" type of thing? I know I can do it with PHP but this a part of a much larger query so I'm trying to keep this all in a single query.

Is There An 'Is Negative' MySQL Query Function?
I have a query, as shown below. Its a grouped query and I have a column called quantity in a products table. If the value in this table drops below zero I want the query to take zero as the quantity. Is this possible?.....

Mysql 4.x Week Function Fails
I think there is a bug in mysql 4:

select week("2003-08-15") from po.orders limit 1;

produces: 32

after:

set session default_week_format=3;

it produces: 33 (which is correct in the Netherlands)

The documentation states:

set global default_week_format=3; (As root!)

This command should set the default_week_format. This command fails:

mysql> set global default_week_format=3;
Query OK, 0 rows affected (0.00 sec)

mysql> select week('2003-08-14');
+--------------------+
| week('2003-08-14') |
+--------------------+
| 32 |
+--------------------+
1 row in set (0.00 sec)

This result is incorrect. It should be 33.

If I use:

mysql> set session default_week_format=3;
Query OK, 0 rows affected (0.00 sec)

mysql> select week('2003-08-14');
+--------------------+
| week('2003-08-14') |
+--------------------+
| 33 |
+--------------------+
1 row in set (0.00 sec)

This is result is correct...

I use mysql 4.0.14. I also did the same test on mysql 4.1 alpha, which has
the same results.

Harm de Laat
Informatiefabriek
The Netherlands

Is There A Addslashes()-type Function In Mysql Or Sql
I was wondering if there was a way to automatically add escapes to a string in either SQL standard or MySQL, such as addslashes() in PHP. I'm looking for something like the quote() function but without the need for quoted strings?

PHP/MySQL, No Longer Connecting To Db When In Function
I'm trying to clean up the code so that design changes will be easier. So, I've put the

$connection = mysql_connect($hostName,$username,$password) or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db($databaseName, $connection);

etcetera... with output commands in global functions().

But for some reason (why?), it no longer "reads" the original include with all the database variables. Is there a way to help these new functions "read" the previously set variables?

Is There A Addslashes()-type Function In Mysql Or Sql
I was wondering if there was a way to automatically add escapes to a
string in either SQL standard or MySQL, such as addslashes() in PHP. I'm
looking for something like the quote() function but without the need for
quoted strings?

Escaping Charater Function In Mysql
Is there any escaping character function available in mysql. I am creating report using stored procedure by concat various data's. Within the data's some special character found like (" ' ) i need to escape those character from mysql function.

UserDefined Function :MySQL Restarts
I am attempting to create a Function by means of using the following query create function xxxx returns integer so name yyyyy.so . The Function gets created Properly at the first time. But when i attempt to Create the same function again after dropping it the MySQL Server gets restarted and the function is not getting created. I don't know what will be problem.....Could any one give me a solution orhint where will be the problem.

Trigger?
As a test (using MySQL Query Browser), I created a trigger that was given as an example in the 5.0 online documentation. I didn't receive any error messages so I'm assuming my trigger was created successfully. The problem now is that I can't find it. I know you in SQL Server 2000 you could find it by right-clicking on the table in the Enterprise Manager. How do I find it in MySQL (version 5.0.18)?

Trigger?
Is there anything that I can use other than triggers to update tables. I want to be able to update table B when someone do an insert on table A. I found that MySQL 4.0.2 doesn't support triggers yet.

Set Up Trigger
I have a table set up on way database and one of the fields is for holding a expiry date.

So I would like to know how I could set a some sort of trigger email to be send out once the expiry date matches the current date.

My Trigger
This is my trigger, including the error message:

mysql> create trigger closeAuction before insert on auction for each row begin update auction set closed = 'true' where current_date() > deadline end;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update auction set closed = 'true' where current_date() > deadline end' at line 1

I can't see what's wrong with my trigger.

SQL Trigger
I would like to have a trigger set so that when a table on a DB is updated, changed, or edited, or anything is done to it, another table on ANOTHER DB is changed.
Heres the information i can givey you:

DB1 name = rag

DB2 name = rag2

DB1 table name = users

DB2 table name = login

So, when DB1users is changed in any way, i want DB2login to be changed as well

One Trigger To Another
How do I pass a value from one trigger to another?
I have a before trigger based on an update, when the user attempts to update a numeric field above a certain value, the before trigger is invoked and it stops the update (ie. sets the new value to be equal to the old one).
I also have an after trigger that writes a record to a different table after this update has occured. It writes a number of fields, such as USER, DATE, etc, but I also want it to write the value that the user originally tried to update the numeric field to. So how can I pass that original attempted update value to the after trigger?

Trigger
I'm interfacing with UPS WorldShip using ODBC. UPS uses a unique shippingID to identify each shipment and I use it as a primary key. The ODBC only does INSERT statements and never updates - however sometimes I need to update a shipment (if it gets voided for instance). I thought about doing a trigger that searches the table for the id, but I can't use the table on which the trigger occurred (correct?). I'm sure some one out there has addressed this issue in the past and I'm wondering how it is done.

Trigger
I have a form in PHP that has a dropdown list "Status" and a text field "Status date". I want to automatically update the "Status date" field with the current date, whenever the value of the "Status" dropdown list changes. Is this something that I can do with a trigger? If so, what would the trigger code be to do this?

Problem Logging In Using Mysql Password Function
I have a test server on a windows box with php 4.3.10 and mysql 4.1.10-nt. I built a login app and It works well using the mysql password('') function. Unfortunately I ported the app to a freebsd box running php 4.3.10 and mysql 4.1.12. The passwords come out differently and I don't understand why.

For instance, the password test looks like "378b243e220ca493" on the windows box and the freebsd database entry look like "*94BDCEBE19083CE". As you can see, very different. And this causes a lockout from logging in.

Instead of being routed to a "safe" login page, the error for a wrong username/password combo shows up.

Why Does GROUP_CONCAT() Function Fail In MySQL 4.1.12 In This Query?
Here are my results using MySQL 4.1.12 and I honestly don't think this is right, but can't figure out what to do:

Stored Function Stops MySQL Service
I'm using MySQL 5, Windows XP Home SP2 (ack, but only for the near future)... I have what appears to be a simple and straightforward need- execute a function for a column in each row of a result set: Code:

SQLColumns Function And MySQL ODBC Driver
The MySQL ODBC driver returns an error when calling SQLColumns function with an empty Table parameter:

[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt]Can't use wildcards in table name

Is there a newer version which supports wildcards in table name? Actually I don't really need wildcards, but I need to get the list of all columns in all tables.

How Can I Execute A PreparedStatement Inside Mysql Function
How can i execute a preparedStatement inside mysql function?

Trigger Old And New Values
I have two tables with some fields.

RealTableName
ID int
FieldOne varchar
FieldTwo varchar

OldValuesTableName
ID
RealTableNameID
FieldOne
FieldTwo

I want to create a trigger which transfers the current values of the `RealTableName` record I am updating to the `OldValuesTableName`. This should happen before update.

How Do I Write This Trigger?
I’ve been searching all over for the answer to this one. If you have the answer, it would help me out a lot!

Using MySQL triggers, I want to sync content between two tables; I have table “user” and table “users”, each have similar columns “last_name” “first_name” “user_id” …etc, and when a row gets written to table “users”, I wanted that record to be replicated and inserted to “user” (with all the same field info).

How do I write this trigger? I know, it’s anti-normalization, but it will really help me out with testing one of our site's authentication.


Copyright 2005-08 www.BigResource.com, All rights reserved