2017-07-08 2 views
1

私はmysqlに接続するためにnodeを使用しています。私はinsertを実行してからすぐにselect last_insert_id()を実行する必要があります。 MySQLのワークベンチで同じクエリでLAST_INSERT_ID()を挿入して選択することはできませんか?

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

このクエリは動作しますが、言って私にエラーを与える:

SELECT LAST_INSERT_ID()) 

エラーコード:1064あなたは、あなたのSQL構文でエラーが発生しています。それは最後の部分でエラーを投げているので、それが実際に正しいIDを返しますが、行で2 0.047秒

に「)」の近くに使用する権利 構文についてはMySQLサーバのバージョンに対応 マニュアルをご確認くださいノードがエラーをキャッチしています。

+0

あなたが質問してdata_tempテーブルのスキーマを追加してください – scaisEdge

+0

これはPHPなどから実行していますか? –

+0

私はノードmysqlパッケージを使用しているので、すでに最後に挿入されたIDを取得して、それを2回取得するとこのエラーが発生します。 mysqlノードライブラリのresults.insertIDを使って解決しました。 – jshill103

答えて

0

あなたのINSERTクエリでの問題あなたは自分の列の名前を入れて逃した

col1の代わりにこの

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

好きですし、col2、それを自分の列名を置くがありますあなたのために働くでしょう。

関連する問題