gpt4 book ai didi

MySQL:如何使用存储过程将行插入到不同的表中?

转载 作者:行者123 更新时间:2023-11-30 23:28:55 24 4
gpt4 key购买 nike

目前,当一个新行插入到我的 users 表中时,我分别在其他每个表中插入了 1 行:

profiles
user_settings
user_activity

目前我正在从 PHP 做 if:

$query = mysql_query('INSERT INTO `users` blah blah...');

if($query) {
mysql_query('INSERT INTO `profiles` blah blah...');
mysql_query('INSERT INTO `user_settings` blah blah...');
mysql_query('INSERT INTO `user_activity` blah blah...');
}

这如何通过存储过程完成?这样这项工作将由数据库服务器完成,而不是 PHP 代码。从存储过程与代码相比,这样做有什么好处吗?

最佳答案

我认为您正在寻找的是触发器,而不是存储过程。使用触发器,您可以在插入/更新/删除查询之后或之前执行查询。

http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html

优点:它直接在数据库中存储和调用,我认为它的性能也更高。

例子:

CREATE TRIGGER mytrigger AFTER INSERT ON users
FOR EACH ROW BEGIN
INSERT INTO `profiles` blah blah...;
INSERT INTO `user_settings` blah blah...;
INSERT INTO `user_activity` blah blah...;
END;

关于MySQL:如何使用存储过程将行插入到不同的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com