关于数据库触发器和存储过程
About database triggers and stored procedure
我对数据库触发器和存储过程缺乏了解。
我不明白这些条款。谁能帮我弄清楚数据库触发器和存储过程的概念?
如何在 PHP 和 MYSQL 中实现数据库触发器和存储过程?
我认为 PHP 中的一个简单示例可以让我理解这些主题。
提前致谢....
当给定操作发生时执行触发器 - INSERT、UPDATE 或 DELETE。您无法控制它发生的确切时间或次数 - 它只是发生了。另一方面,存储过程必须由您 运行 - 您必须执行它,它不会在每次插入一行时自动 运行 等。
More Detail
触发码
CREATE
TRIGGER `event_name` BEFORE/AFTER INSERT/UPDATE/DELETE
ON `database`.`table`
FOR EACH ROW BEGIN
-- trigger body
-- this code is applied to every
-- inserted/updated/deleted row
END;
存储过程代码
DELIMITER $$
DROP FUNCTION IF EXISTS `functionname` $$
CREATE FUNCTION `functionname`(`fid` int) RETURNS varchar(25) CHARSET utf8
BEGIN
DECLARE fName varchar(25);
SELECT name into fName FROM table
WHERE id = fid;
RETURN fName;
END $$
DELIMITER ;
我对数据库触发器和存储过程缺乏了解。
我不明白这些条款。谁能帮我弄清楚数据库触发器和存储过程的概念?
如何在 PHP 和 MYSQL 中实现数据库触发器和存储过程?
我认为 PHP 中的一个简单示例可以让我理解这些主题。
提前致谢....
当给定操作发生时执行触发器 - INSERT、UPDATE 或 DELETE。您无法控制它发生的确切时间或次数 - 它只是发生了。另一方面,存储过程必须由您 运行 - 您必须执行它,它不会在每次插入一行时自动 运行 等。 More Detail
触发码
CREATE
TRIGGER `event_name` BEFORE/AFTER INSERT/UPDATE/DELETE
ON `database`.`table`
FOR EACH ROW BEGIN
-- trigger body
-- this code is applied to every
-- inserted/updated/deleted row
END;
存储过程代码
DELIMITER $$
DROP FUNCTION IF EXISTS `functionname` $$
CREATE FUNCTION `functionname`(`fid` int) RETURNS varchar(25) CHARSET utf8
BEGIN
DECLARE fName varchar(25);
SELECT name into fName FROM table
WHERE id = fid;
RETURN fName;
END $$
DELIMITER ;