問題タブ [sql-update]
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.
mysql - SQL : 列の値を動的に割り当てる update ステートメント
次の SQL クエリを想像してください。
アップデート実行前のMAX(COL2)が1であるとします。
私の意図は、ID=1 COL2 が 'max(COL2) + 1' (つまり 2) に更新される更新では、その後の更新では 'MAX(COL2) + 1' が再評価されるため、ID が=2、COL2=3、ID=3、COL2=4 など...
実際には、すべての行 (ID=1、2、3、4、5) で COL2 の値が 2 になります。
更新ごとに MAX(COL2) +1 の値を「再評価」するスマートな方法はありますか? これを行うとパフォーマンスの問題が発生する可能性があることは認識していますが、それでも興味があります! より良い代替手段 (複数の更新ステートメントを含まない) はありますか?
ところで:上記のクエリ(ネストされた内部テーブル)に使用される構文について疑問がある場合は、ここを参照してください:SQL:ネストされたFROM句のUPDATEステートメントでターゲットテーブルを使用する
mysql - MySQLに「そのような行が挿入されない場合は値を更新するyyy」はありますか?
Mysql 5でテーブル値を更新したいのですが、キーが存在しない場合は作成してください。
私がそれをすることを見つけた方法は次のとおりです:
問題は:上記の形式は他の方法よりも効率が悪いですか(挿入は1回だけ行われ、更新は非常に頻繁に行われるため)?
例えば:
さらに:Mysqlでこれを行うためのより良い方法はありますか:たとえば、次のようなものがあります:
更新:REPLACEを提案した人のために、これが私の質問の拡張です:「ありがとう!すでにテーブルにあるカウンターを増やす必要があります(存在する場合)。そうでない場合は、この列に値1のテーブル行を作成します。この形式(REPLACE)で更新するにはどうすればよいですか?」
mysql - MySQL の UPDATE と SELECT を 1 回のパスで
実行するタスクの MySQL テーブルがあり、各行には単一のタスクのパラメーターがあります。
ループ内でタスクを実行する多くのワーカー アプリ (異なるマシン上にある可能性があります) があります。
アプリは、MySQL のネイティブ C API を使用してデータベースにアクセスします。
タスクを所有するために、アプリは次のようなことを行います。
グローバルに一意の ID を生成します (簡単にするために、数字であるとしましょう)
UPDATE tasks
SET guid = %d
WHERE guid = 0 LIMIT 1
SELECT params
FROM tasks
WHERE guid = %d
最後のクエリが行を返す場合、それを所有し、実行するパラメーターがあります
サーバーへの単一の呼び出しで同じ効果 (つまり、行を「所有」してそのパラメーターを取得する) を達成する方法はありますか?
jsp - JSP/サーブレットは SQL 更新をトリガーします
ユーザーがjspページにログインすると開くIRCクライアントを保持する小さなウィンドウがあります。ポップアップ ウィンドウが閉じられたら、SQL 更新ステートメントを呼び出す方法を見つけようとしています。
どうすればこれを行うことができるかについて誰にもアイデアがありますか?
ありがとう
〜カイルG
mysql - 更新時にテーブルを結合するにはどうすればよいですか
私は次のクエリを持っています:
これは、6か月(LAに保存されている日付)より古い特定の都市のステータス5のレコードを検索します。これにより、約4kの結果が返されます。これらの各レコードのステータスの値を1に更新したいので、更新は次のようになります。
しかし、それは失速し、データベースをロックします。結合がないため問題があると思いますが、次のように試します。
更新には「from」がないため、明らかに機能しません。
編集>MySQLを使用しています
sql - Derby で UPDATE x SET (col1, col2) = ( SELECT a,b FROM y ) をエミュレートするにはどうすればよいですか?
Derby は次の構文をサポートしていません。
(このバグを参照してください)。Javaでループを作成してN個の更新を選択して送り返す以外の回避策はありますか?
[編集] 50 列と複雑な条件 (x と EXISTS などとの結合) があることに注意してください。したがって、SELECT を 50 回繰り返すことは避けたいと思います:)
sql - 値が欠落している場合のデータベース テーブルの更新
私は2つのテーブルを持っています:
明細書 :
為替レート :
これは私がやりたいことです:
Bill テーブルを次のように更新したい
この更新では、その特定の日付のエントリを持つすべての行が新しいレポート通貨データを取得します。Bill テーブルには更新の対象となる行が複数ある可能性があるため、次の問題があります。
FxRate テーブルに (その日付の) エントリがなかった行の場合、ReportingCurrency は NULL になります。に戻ってnearest <= RateDate
為替レートを取得したいのですが、同じ update ステートメントまたは他の効率的な方法で変更を行うことは可能ですか? (カーソルを避けたい)。
java - DB レコードの更新のベスト プラクティス
100 件のレコードを取得し、それらをページに表示するとします。ユーザーは、ページ上の 2 つのレコードのみを更新します。ここで、2 つのレコードのみを更新し、他の 98 レコードは更新しないようにします。
ページに1つの送信を行い、どの2つが更新されているかをどうにかして知ってから、それら2つだけをデータベースに送信して更新するのが最善ですか?
「なんとなく」ってどんな感じ?
または、各行に update-submit ボタンを用意して、関連付けられているレコードのみを更新するようにしますか?
sql - ms sql を使用して更新および注文する方法
理想的には、私はこれをしたい:
英語で: DB から上位 10 件の使用可能な (ステータス = 0) メッセージを取得し、それらをロックします (ステータス = 10)。優先度の高いメッセージが最初に取得されます。
残念ながら、MS SQL では更新で order by 句を使用できません。
とにかくこれを回避する方法は?
sql - SQL 更新クエリ
主キーをフィールド no、id、および groupno と組み合わせました
Access では、 などの WHERE 条件のWHERE no = '' & groupno = ''
実行が高速化されますが、同じことが SQL での更新の速度を低下させます。
no と groupno の個別のインデックスを提供すると、より高速になりますか?
主キーに 3 つの 3 つのフィールドを指定し、それらのフィールドに基づく個別のインデックスを指定しない場合、結合キーと見なされますか?