問題タブ [sql-insert]

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 投票する
2 に答える
2052 参照

c# - プログラムで実行すると問題が発生するSQLスクリプトデータのキーワード-C#

私はSQLにかなり慣れておらず、SQLスクリプトで大混乱を引き起こすキーワードに問題があります。C#で事前に作成された.sqlスクリプトファイルのリストを実行しようとしています。現在、ファイルを文字列に読み込んで、command.ExecuteNonQuery()で実行しています。これはほとんどのスクリプトでうまく機能しますが、誤ってキーワードが含まれているスクリプトに遭遇しました。

基本的に、そのGOにヒットすると、コマンドは失敗します。

私はこれらの挿入ファイルの作成を担当しているので、何らかの方法でそれらを再フォーマットする必要がある場合は、それが可能です。ただし、それらのデータは交渉できません。また、多くの行があるファイルからそれらをロードしているので、このようなことを避けるためのパラメーター化も実行可能ではないようです。

この時点でどんな助けでも大歓迎です。どうもありがとう!

情報を追加するために編集:

明確にするために、実際の文字列は「ASVFDS4 + 23eF3da34sddsdf3d3t4g ... 100charslater ... sd5OAyGOsiISIssdsd/sNUIGsdisd354f」のようなものです。コマンドを実行しようとすると、次のような例外が発生します。

5OAyの直後にGOsiIS...が続くことに注意してください。これにより、GOは実際にはコマンドとして読み取られているため、そのコマンドの前に文字列が終了することが予想されます。

.NET3.5の実行

編集2 また、明確にする必要があります。現在、実際のGOステートメントを分割し、コマンドを個別に実行しています。

すなわち

分割するので、実行します

別々に。したがって、私の問題は実際のGOステートメントではなく、データ文字列に「GO」という文字が表示されていることです。

答え:問題は、私がひどくばかげた間違いをしたことです。「GO」で分割します。これは、文字GOが表示されるパラメーターの真ん中でコマンド文字列を分割します。

/ facepalm

すべての助けをありがとう!

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

php - Mysql および PHP インボックスの更新

受信箱システムを作りました。サインインしたユーザーは、他のサインインしたユーザーにメッセージを送ることができます。データベースの usermessage テーブルには、1. userid と 2. messageid の 2 つのフィールドがあります。以下は、この表からの抜粋です。

上記の状況では、ユーザー '12' がユーザー '13' にメッセージを送信します。ユーザー「12」または「13」がメールボックスをチェックしているときに、メッセージ ID「1」が最近の会話として受信ボックスの上部に表示されるように、メッセージ ID「1」をテーブルの一番下に移動します。これまでのところ、メッセージID「1」を削除し、各ユーザーIDの新しいクエリとして挿入することでこれを達成できました。これは私のコードです:

これを 1 つのクエリで実行することは可能ですか。これまでのところ、私の問題に関連するスタックフローで明確な答えを見つけることができませんでした.

0 投票する
4 に答える
8841 参照

sql - 行が存在する場合はIDを返し、存在しない場合はINSERTを返します

node.jsにPostgreSQLテーブルをクエリする関数を書いています。
行が存在する場合は、行からid列を返します。
存在しない場合は、挿入してID(insert into ... returning id)を返します。

case私はとステートメントのバリエーションを試してきましたがif else、それを機能させることができないようです。

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

sql - SQL Server – 単一の (ANSI スタイル) ステートメントで複数の行を挿入する

INSERT単一のステートメントを使用して複数の行を挿入するために、次の方法を使用しています。これは、行を挿入するANSIスタイルです。SQL Server 2008 および 2012 で使用できます。SQL Server 2005/2000 についてはわかりません。

テスト テーブルを作成します。

INSERT5 行を挿入する 1 つのステートメント

これを達成するための他の最良の方法があれば教えてください

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

php - PHPとmySQL、現在の日付で動作しますか?

PHPとmySQLの質問あなたが私を助けてくれることを願っています。データベースの更新オプションがあります(ボタンをクリックすると、update.phpファイルが実行されます)。このupdate.phpは、PASSENGERテーブルを分離しようとする役割を果たします。

現在、私は1つの巨大なPASSENGERテーブルを持っています。ここで、今日ビジネスで旅行が発生した場合(これは旅行予約会社です)、それらはCUSTOMERテーブルにありますが、アーカイブされた顧客(たとえば、昨日から旅行した人)が必要です。後方に、ARCHIVED_CUSTOMERテーブルに配置されます。

現在、現在のPASSENGERテーブルからの情報を使用してARCHIVED_PASSENGERテーブルに追加している小さなPHPスクリプトがありますが、パラメーターがPASSENGERIDである場合のみです。

私はスクリプトのDELETEFROMPASSENGERの部分に非常に満足していますが、データベースから大量の情報を収集して移動できるコードを誰かが知っているかどうか疑問に思っていました。 PASSENGERテーブルのactiveUntil部分を介して。

PHPスクリプトを非常に削除しましたが、自分自身を明確にしたことを願っています。

0 投票する
3 に答える
2693 参照

php - 最初に UPDATE または DELETE、次に INSERT

SOに関する他の質問から直接の回答が得られないため、もう一度質問します。

私の状況は次のとおりです。2つのテーブルphonesfeatures.

構造:

電話

  • ID
  • brand_id
  • モデル
  • 写真
  • 公開された

特徴

  • ID
  • 電話番号
  • 特徴

現在、featuresには多くの値が含まれており、1 と 4 の間のみが を介して特定の電話に対応しphone_idます。

さて、私が地物を更新するとき、新しい地物を削除してから再度挿入するか、既存の地物を更新するのが最善だと思いますか?

// 編集:

特別

  • ID*
  • 電話番号
  • contract_id
  • start_publish
  • 終了_公開
  • 公開された

契約する

  • ID*
  • 名前
  • 利点
  • 間隔
  • 価格など

ブランド

  • ID
  • 名前
  • ロゴ

したがって、基本的には、電話番号と契約書を特別にリンクし、両方のテーブルから情報を取得して出力します。次に、そのプロセス中に、各電話の機能が関数を使用して個別に読み込まれます。

// 編集 2:

ああ、一度に1 つの電話の機能のみが削除/更新されます。また、一度に 1 ~ 4 の機能のみが削除されます。また、機能は常に多かれ少なかれ、一定の数になることはありません。

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

oracle - NHibernate 3.3:Oracle11gストアドプロシージャの実行

次のように、NHibernateの.hbm.xmlマッピングファイルにコマンドとしてOracle11gストアドプロシージャをマッピングしています。

これはストアドプロシージャです。

このマッピングから、「Id」および「Name」プロパティがパラメーターとして送信されることを期待していますが、確かに、これは発生していません。Oracleからこのエラーが発生します:ORA-01036:不正な変数名/番号。NHibernateはコンソールウィンドウにいくつかのログを表示し、NHはストアドプロシージャを呼び出すために、AuditFieldsを含むすべてのプロパティをマップしようとしているようです。

多分これはソースのエラーですか?

これは予想される動作ですか?

NH3 / Oracleでパラメータとして送信するプロパティを特定することは可能ですか?

前もって感謝します。

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

mysql - Mysqlの更新/挿入:履歴データのコピー

Mysqlデータベースにいくつかの履歴データテーブルがあります。

同じテーブルで、ある日の履歴データを別の日に繰り返したいと思います。

いくつかのサンプルデータを含むテーブル構造:

これらのIDと値を繰り返したいのですが、新しい日付(2012-05-01など)を使用します。すなわち追加:

これを行う簡単な方法があるはずだと思います...サブクエリを使用してUPDATEステートメントを試し、複数のLEFT JOINを使用してみましたが、まだ到達していません。

これをどのように行うことができるかについてのアイデアはありますか?

編集:明確にするために...-これらを新しいテーブルに追加したくない-テーブル内の既存のレコードを変更したくない。-IDは意図的に複製されています(データが参照するものを記録する別のテーブルへの外部キーです...)。

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

oracle - NHibernate 3.3: BLOB パラメータを使用して Oracle 11g ストアド プロシージャを実行する

私は NHibernate 3.3 と ODP.NET を使用して Oracle11g データベースに永続化しています。これは、以下に関連する構成のセクションです。

byte[] プロパティを BLOB フィールドにマッピングし、次のように挿入ストアド プロシージャを実行するブロックを設定しています。

デジタルエンティティは、サイズが 32k 以下のファイルで正常に保持されます。しかし、サイズが 32k を超えるファイルで [ORA-01460: 実装されていない、または不当な変換が要求されました] というエラーが発生します。

ドライバーの制限ですか?どうすればこれを回避できますか?

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

sql-server-2008-r2 - あるサーバーから別のサーバーのテーブルへのストアド プロシージャ内で INSERT、UPDATE、または DELETE を実行する

この問題があります。あるサーバーから別のサーバーにあるテーブルへのストアド プロシージャ内でINSERTUPDATEまたはステートメントを実行しようとしています。DELETE

例: サーバー192.168.0.3にデータベースBaseAがあり、その中にストアド プロシージャを追加しますspu_a。このストアド プロシージャでは、サーバーにあるtableAinBaseBデータベースのテーブルに新しい行を挿入したいと考えています。BaseB192.168.0.4

どうやってやるの?