簡體   English   中英

如何在單個查詢中將數據插入多個表 - Mysql

[英]How do I insert data into multiple tables in single query - Mysql

我有8個查詢要插入8個表。 我試過這個但沒用

$mysql_db_hostname = "localhost";
$mysql_db_user = "root";
$mysql_db_password = "";
$mysql_db_database = "emp";

$con = mysqli_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database");
mysqli_select_db($con, $mysql_db_database) or die("<div class='loginmsg'>Could not select database</div>");

if(mysqli_multi_query($con,"INSERT INTO t_emp (`e_id`,``,``) VALUES ('','',''); INSERT INTO t_emp_add (`e_id`,``,``) VALUES ('','',''); INSERT INTO t_emp_att (`e_id`,``,``) VALUES ('','',''); INSERT INTO t_emp_dep (`e_id`,``,``) VALUES ('','','');.....(etc);"))
{
 echo "Inserted";
}
else{
 echo "Not Inserted";
 }

有沒有任何方法可以存儲到多個表中..?

使用transactions

BEGIN;
INSERT INTO tab1 (col1, col2)
  VALUES('1', '2');
INSERT INTO tab2 (col1, col2,col3) 
  VALUES(1,2,3);
COMMIT;

MySQL不支持在單個INSERT語句中插入多表。

由於問題在其他帖子中已經關閉,我將把它放在這里 - 創建一個存儲過程: -

delimiter $$
CREATE PROCEDURE `spInsertTemp`( IN `p_emp_no` INT, IN `p_e_id` INT, IN `p_att_s_no` INT, IN `p_dep_s_no` INT )
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
begin
    insert into `t_emp` (`emp_s_no`,`e_id` ) values ( p_emp_no, p_e_id );
    insert into `t_emp_add` ( `e_id` ) values ( p_e_id );
    insert into `t_emp_att` (`att_s_no`,`e_id` ) values ( p_att_s_no, p_e_id );
    insert into `t_emp_dep` ( `dep_s_no`, `e_id`) values ( p_dep_s_no, p_e_id );
end $$;
delimiter ;

在你的gui中運行,使用如: -

$sql='call `spInsertTemp`(1,2,4,5);';

不,MySQL沒有表達式來插入多個表中的一個查詢。

如果需要,可以使用MySQL 存儲過程或函數和/或使用事務處理。

您可以使用After Insert Trigger在多個表中插入記錄。 當在該數據庫中執行insert語句時,它將自動觸發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM