簡體   English   中英

在MySQL上進行多個INSERT / UPDATE

[英]Multiple INSERT/UPDATE on MySQL

我必須使用ON DUPLICATE KEY指令對一個動態字段和其他靜態字段執行多次插入/更新。 我有帶有字段的表“ notifications”:

ID (BIGINT AUTOINCREMENT PRIMARY KEY), 
user (BIGINT UNIQUE), 
creator (BIGINT UNIQUE), 
type (TINYINT UNIQUE), 
value (BIGINT UNIQUE), 
date (INT), 
readed (TINYINT), 
erased (TINYINT). 

我必須為每個用戶插入/更新一行(ID將通過查詢提取),因此“用戶”字段的值將是動態的,其他則是靜態的。 如何在MySQL上僅執行一個查詢就可以執行此操作?

如果可以使用PDO,則可以在添加所有記錄后構建查詢並提交查詢。

這是將beginTransaction與commit一起使用的示例。

這將准備您的查詢,然后遍歷用戶列表並分配每條記錄。

循環后,它將提交/操作查詢。

$dbc->beginTransaction();
$sql =  'INSERT INTO notifications (id,user,creator,type,value,date,readed,erased) '
    .   'VALUES (:id,:user,:creator,:type,:value,:date,:readed,:erased) '
    .   'ON DUPLICATE KEY UPDATE user=:user ';

$sth= $dbc->prepare( $sql );


foreach( $userlist as $user )
{
    $sth->execute( array(
        ':id'=>$user['id'],
        ':user'=>$user['user'],
        ':creator'=>$user['creator'],
        ':type'=>$user['type'],
        ':value'=>$user['value'],
        ':date'=>$user['date'],
        ':readed'=>$user['readed'],
        ':erased'=>$user['erased']
     ));
}

$dbc->commit();

一些參考點:

暫無
暫無

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

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