2013-07-10 40 views
2

我有node.js的問題。nodejs mysql驚人的行重複

我讀取套接字的數據,使用dgram.createSocket('udp4')。 我分析數據和代碼寫入到MySQL數據庫(使用https://npmjs.org/package/mysql):

var result = { 
        CarID: "0094455", 
        Lat: 55.0405, 
        Lon: 82.981, 
        Time: 1373435075 
}; 
connectionPool.getConnection(function(err, connection) { 
    connection.query('SELECT * FROM lastPosition WHERE CarID = ? ORDER BY Time DESC LIMIT 1',[result.CarID], 
      function(err, rows, fields) { 
      if (rows.length) { 
      connection.query('UPDATE lastPosition SET ? WHERE CarID = ?', [result, result.CarID]); 
      } else { 
      connection.query('INSERT INTO lastPosition SET ?', result); 
     } 
     }); 
    connection.end(); 
}); 

的問題是,我看行重複爲重點CarID「一位置」表,雖然這排除了代碼。我哪裏做錯了?

+0

你可以寫你的更新作爲一個答案,並將其標記爲接受的嗎? – verybadalloc

+0

verybadalloc,好的,已完成 – Seryh

回答

9

我的代碼固定它:

connectionPool.getConnection(function(err, connection) { 
    connection.query('INSERT INTO `lastPosition` SET ? ON DUPLICATE KEY UPDATE Lat=VALUES(Lat), Lon=VALUES(Lon), Time=VALUES(Time)', result); 
    connection.end(); 
    }); 
+0

不錯!現在,在36個小時後,你是否會友好地接受你自己的答案?與此同時,這是我的讚揚。 – verybadalloc