1

現在、新しい行がusersテーブルに挿入されると、これらの他の各テーブルにそれぞれ1つの行が挿入されます。

profiles
user_settings
user_activity

現在、PHPからの場合は次のようにしています。

$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コードではなく、データベースサーバーによって実行されます。また、ストアドプロシージャとコードからこれを行うことには、何か利点がありますか?

4

1 に答える 1

0

あなたが探しているものはそうではtriggersないと思いますstored procedures。を使用triggersすると、挿入/更新/削除クエリの前後にクエリを実行できます。

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

利点:DBに直接保存および呼び出され、パフォーマンスも向上すると思います。

例:

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;
于 2012-07-29T22:05:17.060 に答える