我有两张表考虑table1和table2 ......
我需要在插入table1后执行触发器.. 触发器必须做一些像
这样的事情使用select查询从其他两个表中检索数据(它检索多行)使用检索到的数据进行一些计算,然后需要将其作为单行插入到table2中。 我认为它不可能在触发器中执行这些操作。所以我决定从触发器调用一个php文件来完成所有这些事情..但有些人说从触发器调用php实际上并不好,它有一些安全性风险..
我需要你对我的问题的建议...请不要投票或忽视......如果我的问题 目前还不清楚要求我编辑...
答案 0 :(得分:0)
一个简单的例子可以帮助你。
$sql="INSERT INTO `table1` (FirstName, LastName, Age)
VALUES ('$firstname', '$lastname', '$age')";
$result = mysql_query($sql) ;
if($result)
{
// Record successfully inserted , place your code which needs to be executed after successful insertion
}
else
{
// Insertion failed
}
我假设您将使用mysqli而不是mysql因为PHP 5.5.0不推荐使用mysql_query
,但这只是一个帮助您理解逻辑的示例。
答案 1 :(得分:0)
好的,你得到了..在这种情况下,你需要创建一个TRIGGER
这样的东西。
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;
此问题已经回答,请查看以下链接。
MySQL trigger On Insert/Update events
希望这会有所帮助。