如果MySQL中的上一个查询中没有重复,如何插入记录

时间:2013-08-21 23:46:11

标签: mysql

我有2个需要执行的插入查询。每个查询都会在不同的表中插入数据。第一个查询具有ON DUPLICATE KEY UPDATE子句。我需要做的是防止第二个查询运行是由于DUPLICATE KEY导致更新的第一个查询。

这是我目前的代码。

    $insertEvent = $db->processQuery('INSERT INTO calendar_events (start_on, end_on, subject, owner_id, created_by, phone_call_id, status )
                                        VALUES (?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE start_on = ?, end_on =?, status = ? ',
                                        array($start, $end, $subject, $owner, $created_by, $phone_call_id, $status, $start, $end, $status) );   
    $event_id = $db->lastinsertid();

    $insertEvent2 = $db->processQuery('INSERT INTO calendar_attendees (event_id, owner_id) VALUE (?, ?)', array($event_id, $owner));

我只想在$ insertEvent创建新记录时执行$ insertEvent2,否则忽略第二个语句。

由于

1 个答案:

答案 0 :(得分:0)

我相信您可以在第二个INSERT上使用INSERT IGNORE语法,以便您的查询看起来像

INSERT IGNORE INTO calendar_attendees (event_id, owner_id) VALUES (?, ?)

确保UNIQE上有(event_id, owner_id)约束。

顺便说一句,你的第二个插页中有拼写错误。它应该是VALUES而不是VALUE