2017-07-08 4 views
1

Ich benutze Knoten, um eine Verbindung zu mysql herzustellen, und ich muss eine Einfügung ausführen und dann sofort eine select last_insert_id() ausführen.Kann Insert nicht ausführen und LAST_INSERT_ID() in derselben Abfrage auswählen?

insert into data_temp values (null, '{"test":{"id":12,"otherdata":"x","otherdata2":"y"}}'); 
SELECT LAST_INSERT_ID(); 

In MySQL Workbench diese Abfrage funktioniert aber gibt mir eine Fehlermeldung, dass:

SELECT LAST_INSERT_ID()) 

Fehlercode: 1064. Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das für die richtige Syntax verwendet in der Nähe von ‚)‘ in Zeile 2 0,047 sec

Es gibt tatsächlich die korrekte ID zu Ihrer MySQL-Server-Version entspricht, sondern weil es einen Fehler auf dem letzten Teil wirft Der Knoten fängt den Fehler ab.

+0

update Sie Frage und fügen Sie die Tabelle data_temp Tabelle bitte – scaisEdge

+0

Führen Sie dies von PHP oder was auch immer? –

+0

Da ich Knoten mysql-Paket verwende es bereits die letzte eingefügte ID ergreift und es zweimal ergreift wirft diesen Fehler, denke ich. Ich löste dies, indem ich results.insertID aus der mysql-Node-Bibliothek verwendete. – jshill103

Antwort

0

Es gibt ein Problem in Ihrem Einsatz Abfrage verpassten Sie einfach den Namen Ihrer Spalten setzen

wie Sie diese

insert into data_temp (`col1`, `col2`) values (null, '{"test": 
{"id":12,"otherdata":"x","otherdata2":"y"}}'); SELECT LAST_INSERT_ID(); 

Anstelle von col1 und col2 setzten Sie Ihre Spalten benennen Sie es dann wird für dich arbeiten.

Verwandte Themen