1
目前,當一個新行插入我的users
表我有1行分別插入到每個其他表:MySQL:如何使用存儲過程將行插入到不同的表中?
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代碼完成。從存儲過程和代碼中做這件事還有什麼好處嗎?
感謝這正是我需要的。但是,我怎樣才能在'users'表中獲取剛纔插入的行的id,以便在其他表上插入一行時可以使用它?例如,我的查詢是'INSERT INTO profiles(user_id)VALUES('???');'我能替換什麼?用? – TK123 2012-07-29 22:17:13
您可以使用'NEW.id'或任何您的字段名稱爲'NEW.fieldname' – Horen 2012-07-29 22:19:55
來自文檔:'您可以使用別名OLD和NEW引用主題表(與觸發器關聯的表)中的列。 OLD.col_name在更新或刪除之前引用現有行的列。 NEW.col_name引用要插入的新行的列或更新後的現有行 – Horen 2012-07-29 22:23:29