2015-07-12 18 views
31

Dzień dobry,Pobierz ostatnio wstawiony identyfikator z Mysql

Jestem skłonny odzyskać wartość identyfikacyjną świeżo wstawionego wiersza w Mysql.

wiem, że jest funkcja mysqli_insert_id, ale:

  1. Nie mogę określić tabelę
  2. Może nie byłoby ryzyko pobierania niewłaściwy identyfikator, jeśli zapytanie jest wykonana w międzyczasie.
  3. Używam node.js MySQL

nie chcę ryzykować kwerendy najwyższy id ponieważ istnieje wiele zapytań, to może dać mi złego ...

(My ID, jest automatyczne przyrostu)

Odpowiedz

66

https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row opisuje rozwiązanie doskonale:

connection.query('INSERT INTO posts SET ?', {title: 'test'}, function(err, result) { 
    if (err) throw err; 

    console.log(result.insertId); 
}); 

E dit: pisownia i repo przeniesione w github, więc zmieniłem na bieżący link.

+2

mam zero dla insertId cały czas. Jakieś sugestie? – Dinesh

+0

Jak zdefiniowano tabelę? Czy masz kolumnę z identyfikatorem AUTO_INCREMENT? – luksch

+0

tak. teraz działa. dzięki! to działało – Dinesh

-2

Myślę, że źle zrozumiałeś sposób użycia metody mysqli_insert_id(). Ta metoda musi zostać wykonana po po wydaniu instrukcji insert, aby uzyskać ostatni wstawiony identyfikator. Jeśli zrobisz to mój MySQL bezpośrednio

INSERT INTO(a,b)values(1,'test'); 
SELECT LAST_INSERT_ID(); -- this will display the last inserted id 
1
var table_data = {title: 'test'}; 

connection_db.query('INSERT INTO tablename SET ?', table_data , function(err, result, fields) { 
    if (err) { 
     // handle error 
    }else{ 
     // Your row is inserted you can view 
     console.log(result.insertId); 
    } 
}); 

Można również zobaczyć odwiedzając ten link https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row

Powiązane problemy