テーブルにデータを挿入するアプリを作成しています。テーブルにデータを挿入した後、その行のIDを取得したいので、それに応じてさらに操作を行うことができます。sqlite のlast_insert_rowid()関数を使用しようとしましたが、うまくいきませんでした。最後に挿入された行 ID を取得するための最良の方法を教えてください。どんなアイデアでも大歓迎です。前もって感謝します。
質問する
11193 次
2 に答える
8
次のように、テーブルの最後の挿入のIDを取得できます-
tx.executeSql("INSERT INTO profile('name','label','list_order','category') values(?,?,?,?)",
[currentProfile.name, currentProfile.label, currentProfile.list_order, currentProfile.category],
function(tx, results){
var lastInsertId = results.insertId; // this is the id of the insert just performed
},
failCB
)
WebSQLresults.insertId
は MySQL と似てmysql_insert_id()
います -
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
于 2013-10-16T16:14:17.227 に答える
1
テーブルに、rowid、oid、または _rowid_ という名前の列がありますか? その場合、last_insert_rowid()
意図したとおりに動作するという問題が発生します。ここを参照してください。
回避策: 自動インクリメントされる ID 列がある場合は、次の SQL を使用して最後のエントリを取得できます。
SELECT * FROM yourTable ORDER BY yourIdColumn DESC LIMIT 1
ハックですが、うまくいきます。
于 2013-10-16T11:28:37.647 に答える