問題タブ [on-duplicate-key]

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.

0 投票する
1 に答える
264 参照

php - リツイートされた場合、retweet_count を含む MySQL 行を更新します。

次の関数を使用して、Twitter API と PHP を使用して、ツイートを MySQL データベースに記録しています。

これはすべて、ツイート、時間、投稿者をログに記録するために機能しますが、retweet_count は入力時にログに記録されますが、ツイートが書き込まれたときにログに記録すると、0 になる可能性があります。取得できません

後でクエリを実行すると、ツイートがリツイートされた場合に行が更新されるように機能します。

retweet_count のエントリの大部分は同じ (0 または 1) であるため、retweet_count を UNIQUE に設定することはできませんが、主キー (id) は一意である必要があり、自動インクリメント列 ID (colid) もありますが、そうではありません実際には twitter api からプルされるため、一意にすることができ、UNIQUE に設定されます。

すでにintを含む行を更新するためのより良い機能はありますか? ありがとう

0 投票する
1 に答える
102 参照

mysql - 複数のエントリに ON DUPLICATE KEY を使用するには?

単一のエントリで、次の値ON DUPLICATE KEYを使用できます。UPDATE

複数のエントリに対して `ON DUPLICATE KEY を使用する方法

0 投票する
1 に答える
416 参照

mysql - 重複キー更新で別の列を使用してselectに挿入

上記は、列数が行数と一致しないというエラーになります。

挿入値の一部として含まれていなくても@draftに列を選択できる方法はありますが、DUPLICATE KEY UPDATEで使用できますか?

0 投票する
2 に答える
580 参照

php - フォーム入力の重複キー UPDATE で INSERT INTO を使用する

INSERT INTO On Duplicate Key UPDATEフォーム入力にどのように使用しますか? 私がオンラインで見つけたすべての例は、カウンターまたは所定の値を使用しています。

UPDATE標準とメソッドを使用してコードを機能させることができました (非常に役立つメンバーのおかげです)SETが、私のテーブルではINSERT INTO On Duplicate Key UPDATE.

'user_id'すべてのテーブルで一意の主キーであり、account テーブルを除くすべてのテーブルで外部キーです。

すべてのフィールドを自動的に挿入するために以前使用していたコードは次のとおりです。

0 投票する
1 に答える
1094 参照

mysql - 重複キー更新時のmysql挿入は、それが行われたかどうかを知っています

私が構築しているアプリケーションでは、重複キーの更新で多くの挿入を使用しています。私の問題は、私のアプリケーションでは、コードが適切な決定を下せるように、それが挿入か更新かを知る必要があるということです。これをテストする方法を知っている人はいますか?

誰かがそれに固有の方法を知っている場合、私はperlのDBIモジュールを使用しています。ありがとう!

0 投票する
1 に答える
371 参照

sql - ON DUPLICATE KEY UPDATE の Flex / AIR ローカル SQL サポート?

タイトルにあるように、Adobe の AIR プラットフォームの SQL 実装は「ON DUPLICATE KEY UPDATE」をサポートしていますか? 動作させることができませんが、特に MySQL 構文とは異なる場合、間違った構文を使用している可能性があります。flex の SQL に関するドキュメントは非常にまばらで、私が見つけたものには、ON DUPLICATE KEY UPDATE についての言及はありませんでした。私が得るエラーはまったく意味がありません:「エラー #2044: Unhandled SQLErrorEvent:. errorID=3115, operation=execute , message=Error #3115: SQL Error. , details=near 'ON': syntax error」

エラーが発生した場合、データベース ファイルは値をまったく挿入しません。

「ON DUPLICATE KEY UPDATE」がなくても期待どおりに機能します。

0 投票する
2 に答える
2250 参照

mysql - DUPLICATE KEY UPDATE の条件付き

いくつかの調査を行いましたが、私のニーズに合うものはないようです。Web サービスから取得したデータを含むデータベース テーブルがあります。

ユーザーは各レコードに対していくつかのタスクを実行し、「処理済み」としてフラグを立てます。したがって、「処理済み」という名前の追加の db フィールド (WS から取得したデータに基づくものではない) があり、デフォルトでは 0 に設定され、ユーザーが作業を完了すると 1 に設定されます。

毎日私はWSをチェックし、ステータスコードが変更された場合は行を更新し、処理を0に戻します(ユーザーが再び処理できるようにします)。

これが私のデータベースだとしましょう...

  • 同じキー (id) を持つ行がない場合は、新しいレコードを挿入します。
  • 同じキーと「foo」が変更された行がある場合、「処理済み」フィールド以外の値を更新したいと思います。
  • 同じキーとステータスコードが変更された行がある場合、任意の値を更新し、処理済みを 0 に設定したいと考えています。

いくつかの条件で ON DUPLICATE KEY UPDATE を使用すると、おそらくいくつかの CASE または IF 条件で機能する可能性があると思います...間違っていますか? どんな提案でも大歓迎です、事前に感謝します!

0 投票する
2 に答える
7542 参照

mysql - MySql - 重複キーの挿入時

INSERT IGNOREとが存在することを理解していますINSERT ... ON DUPLICATE KEY UPDATE。ただし、重複キーがある場合は、INSERT侵害された一意のキーの記録を保持するために一時テーブルに対して a を実行して、ユーザーに出力できるようにしたいと考えています。

私ができる方法はありますON DUPLICATE INSERTか?それが役立つ場合は、一括挿入を試みています。

0 投票する
1 に答える
1470 参照

mysql - UPDATEの代わりに重複キーの更新に挿入

この質問は、「ベストプラクティス」に関するものですが、潜在的な問題の検索についても説明しています。複数のクエリを実行したり、非常に複雑なクエリを使用したりせずに、複数のフィールドで更新を実行し、異なる値を割り当てることができるようにしたいと思います。したがって、私が行ったことは、主キーと「名前」列を一意のキーとして持つテーブルを作成することです。

これで、異なる値で複数の列を更新する場合、次のようなクエリを実行できます。

これは悪い考えですか?これを行うためのより良い方法はありますか?標準警察は私を逮捕するつもりですか?


編集:競合状態であるという、これに関する1つの潜在的な問題に気づきました。別のユーザーが行を編集しているときに1人のユーザーが行を削除して情報を保存すると、編集によって行が再作成されます。(これは機能またはバグとして使用できます。)

0 投票する
1 に答える
885 参照

mysql - ON DUPLICATE KEY によるタイムアウト

現在、MySQL データベースで次の SQL ステートメントを実行しています。

ただし、実行するたびに、次のエラーが発生します#1205 - Lock wait timeout exceeded; try restarting transaction。正確に何が間違っていたのか分からないので、それはかなり恐ろしいことです。私の意図は、既存の行のすべての値を更新することです(idテーブルの主キーである を除く)。

何かアイデアがありましたら、お知らせください。

編集:詳細情報... これidは自動インクリメント フィールドです。別の列もありUNIQUEます (それを と呼びましょうIdentityNo。したがって、ステートメントで実行したいのは、1. に競合がない場合は挿入しIdentityNo2. 競合がある場合は既存の行を更新します(を変更せずに)。 id)。