問題タブ [lastinsertid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 「PDO::lastInsertId」/「mysql_insert_id」の代替
「lastInsertId」(または PDO を使用していない場合は mysql_insert_id()) を使用するのは悪いことだとよく耳にします。トリガーの場合は、INSERT が作成した最後の ID ではないものを返す可能性があるため、明らかにそうです。
代替手段は何ですか?
sql-server-ce - 型付き DataSet および DataGridView を使用した、最後に挿入されたレコード ID の問題
私は単純なデータベースアプリケーションに以下を使用しています:
- SQL Server Compact Edition .sdf ファイルをデータベースとして、int の主キー ID を使用。
- データ アクセス レイヤーとして型指定された DataSet および BindingSource
- データを表示するための DataGridView。
私の問題は、最後に挿入されたレコード/行 ID に問題があることです。ナビゲーター コンポーネントの追加ボタンを使用して datagridview に行を追加すると、新しいレコード/行の ID は -1 になります。TableAdapter.Update() を使用してデータをデータベースに保存した後でも -1 のままです。@@identity または scope_identity() を使用して別のクエリを使用して最後の ID を取得できることはわかっていますが、別のクエリを使用して手動でデータを更新する必要があるとは思えません。ここで何か不足していますか?データベースに保存し、挿入したレコードの ID を取得した後にデータを自動的に更新する方法はありますか?
また、データセット デザイナー -> テーブル アダプター構成 -> 詳細ウィンドウで "データテーブルを更新する" オプションを見ましたが、何らかの理由で無効になっています。でも関係あるのか分からない..
これについて何か助けていただければ幸いです..
php - mysql で最後に更新された列を取得する
次のようなMySQLクエリがあります(Zend_Dbを使用):
(Rank は自動インクリメント PK ではありません)。rank
別のクエリを実行せずに値を取得したいと思います。試してみまし$handle->lastInsertId();
たが、MySQL の自然な自動インクリメント メソッドを使用しなかったため、うまくいかないようです (できません -rank
は投稿のランクです。私は ++ または -- それです。)
別のクエリを実行してこれを行う方法はありますか? 最後に変更された値を返す関数?
sql - 挿入された最後の行を取得するためのユニバーサルSQLコンストラクト
最後の行(または主キー)を挿入するための正しいユニバーサルSQL構造は何でしょうか。IDはシーケンスによって自動生成される可能性がありますが、シーケンスをまったく処理したくありません。テーブルをクエリしてIDを取得する必要があります。または、INSERTを何らかの方法で拡張してIDを返すこともできます。常に単一の行を挿入していると仮定します。このソリューションは、ほとんどのRDBMSで機能するはずです。
java - 2 つの SQL 挿入によるトランザクション
実行する 2 つの SQL 挿入があります (たとえば、テーブル A と B の場合)。データベースの一貫性を維持したいため、トランザクション内にあります。つまり、A のタプルには B の参照が必要です。
2 番目の挿入では、最初の ID が必要ですが、トランザクションをコミットするまでこの ID は取得できません。
だから私は立ち往生しています。最初の挿入をトランザクションから除外したくありません。最初の挿入は正常に行われますが、2 番目の挿入は正常に行われず、データベースに一貫性のない状態が残ることがあります。
この状況でのベストプラクティスは何ですか?
編集: コードは次のとおりです。
指摘したいのは、トランザクションをコミットするまでaIdを取得しないため、B に null を挿入することです。
php - MySQLで前の操作でid(主キー)の値を取得する方法
私はMySQLを使用しています。最初に 1 つの行をテーブルに挿入する必要があり、次に挿入された行の ID を取得する必要があります。コードは次のようになります。
列 1
それは
主キー
そしてそれは自動インクリメントです。では、値を取得する方法
列1
前の操作で?
php - mysql テーブルでの同時挿入を処理し、正しい挿入 ID をフェッチする方法
PHPライブラリにadodbを使用しています。
レコードが挿入されたIDを取得するには、この関数を使用します
p>データベーステーブルに複数の同時挿入があるかどうかを知りたいのですが、このメソッドは挿入された各レコードの正しい挿入 ID を返しますか?
私がこれを尋ねている理由は、他のレコードをさらに処理し、関連するテーブルに後続のエントリを作成するために、この最後の挿入 ID を使用するためです。
このアプローチは十分に安全ですか、それとも何か不足していますか。
既存のデータを台無しにすることなく、最後の挿入 ID を他のテーブルへの追加の挿入に安全に使用できるように、適切な作業計画を策定するのを手伝ってください。
ありがとう
php - Kohana 3 では、データベース クラスから最後の挿入 ID を取得するにはどうすればよいですか?
modules/database/classes/ のかなりのコードを調べましたが、最後の挿入 ID を返す方法がまだ見つかりません。
どうすれば入手できますか?
sql - MySQLで1対1の関係を1対多の関係に変更するにはどうすればよいですか?
現在、YoutubeOAuthトークンの1対1の関係を含むユーザーテーブルがあります。しかし、私は今、複数のビデオサイトをサポートし、これを1対多の関係に分割したいと考えています。
新しいテーブルを設定しました。
トークン-列:id、site、username(Youtubeでのユーザーのユーザー名)、oauth_token、oauth_secret
user_tokens-cols:id、user_id、token_id
現在のユーザーのテーブルからこれらのテーブルにSELECTして、user_tokensテーブルに適切なIDを設定しながら、username、oauth_token、およびoauth_secret列をインポートする方法はありますか?
過去に私はこれを行うための短いPHPスクリプトを作成しましたが、MySQLで直接実行できるかどうかについて常に興味がありました。