我有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,否则忽略第二个语句。
由于
答案 0 :(得分:0)
我相信您可以在第二个INSERT
上使用INSERT IGNORE
语法,以便您的查询看起来像
INSERT IGNORE INTO calendar_attendees (event_id, owner_id) VALUES (?, ?)
确保UNIQE
上有(event_id, owner_id)
约束。
顺便说一句,你的第二个插页中有拼写错误。它应该是VALUES
而不是VALUE
。