如何知道 MySql 的条件插入是否有效?

How to know if MySql's conditional INSERT worked?

对于条件插入,我想知道是否插入了一行或者是否发现了重叠。

我有一个查询,如果它不与任何现有条目重叠,则将请求插入数据库。查询有效,但我如何知道是否发生了碰撞?查询刚刚成功执行。这是我的查询:

INSERT INTO requests(id, start_time, end_time)
   SELECT NULL, 1463631640671,1463636731000,
   FROM Dual
   WHERE NOT EXISTS (
     SELECT * FROM requests
         WHERE
             start_time < 1463638531000 AND
             end_time > 1463636731000
    )

供您参考。我正在使用 mysql 包在 Node.js 中执行此操作。

代码看起来像这样,而且每次都是 returns 'SUCCESS'。

var queryString = "INSERT INTO requests(id, start_time, end_time..."

connection.query(queryString, function(error, results, fields) {
    if (!error) {
        console.log('SUCCESS!');
    }
    else {
        console.log('Insert into requests unsuccessful.');
        console.log('ERROR: ' + error);
    }
});

您可以检查 results.insertId 看看里面有没有东西。