ホームページ  >  に質問  >  本文

Nodejs: 最後に挿入された ID を取得する

私はNodejsとexpressjsフレームワークを使用しており、今取得しようとしています 「最後に挿入された ID」ですが、コンソールでは「未定義」と表示されます。最後に挿入された ID を取得するにはどうすればよいですか?これが私の現在のコードです

static async addServiceDetail(salonId,serviceId,genderTypeId,price,serviceName)
    {
        const sql = `hc_servicesdetail WHERE から id を選択します。 shopId='${shopId}' AND serviceId='${serviceId}' ANDenderTypeId='genderTypeId'`;
        const [行、フィールド] = await pool.execute(sql);
        if(行<1)
            {
                const sql2 = `INSERT INTO hc_servicesdetail (shopId,serviceId,genderTypeId,price,serviceName) VALUES ("${shopId}", "${serviceId}", "${genderTypeId}", "${price}","$ {サービス名}")`;
                const datass = await pool.execute(sql2);
                console.log('最後に挿入された ID は ' datass.insertId です);
            }
        それ以外
            {
                console.log('すでに存在します');
            }
    }
}

module.exports = ユーザー;

P粉463824410P粉463824410213日前308

全員に返信(1)返信します

  • P粉731861241

    P粉7318612412024-03-20 15:00:01

    result.insertId プロパティを使用します。このプロパティは、INSERT クエリの実行時に実行されるコールバック関数で使用できます。

    static async addServiceDetail(shopId,serviceId,genderTypeId,price,serviceName) {
        const sql = `hc_servicesdetail WHERE から id を選択します shopId='\${shopId}' AND serviceId='\${serviceId}' ANDenderTypeId='\${genderTypeId}'`;
        const [行、フィールド] = await pool.execute(sql);
        if (行 < 1) {
            const sql2 = `INSERT INTO hc_servicesdetail (shopId, serviceId, genderTypeId, price, serviceName) VALUES ("${shopId}", "${serviceId}", "${genderTypeId}", "${price}","${serviceName}")`;
            const [datass, _] = await pool.execute(sql2);
            console.log('last inserted id is ' + datass.insertId);
        } else {
            console.log('already exist');
        }
    }

    最初の SQL クエリで genderTypeId='genderTypeId'ngenderTypeId='\${genderTypeId}' に変更したことに注意してください。これにより構文エラーが修正されるはずです。

    返事
    0
  • キャンセル返事