問題タブ [mysql4]
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 - MySQLに列が存在する場合は、ALTERを使用して列を削除します
その列が存在する場合、ALTERを使用してMySQLテーブルの列を削除するにはどうすればよいですか?
を使用できることはわかっていますが、存在しないALTER TABLE my_table DROP COLUMN my_column
場合はエラーがスローされます。my_column
列を条件付きで削除するための代替構文はありますか?
MySQLバージョン4.0.18を使用しています。
c++ - MySQL および C アプリケーション
C/C++ を使用して Linux 上の MySQL データベースにアクセスするアプリケーションを構築する場合、mysql クライアント ライブラリに動的にリンクする必要があります。mysql クライアント ライブラリが不要になるように、アプリケーションを静的にリンクする方法はありますか?
C\C++ 開発に関して、かなり長いクエリをアプリケーションに含め、コードの外側に含めるベスト プラクティスは何ですか? データベースは MySQL 4 サーバー上で実行されるため、ストアド プロシージャを使用することはできません。
c - C MySQL クライアント ライブラリの動作
SuSE SLES 9 のストック ライブラリを使用して MySQL データベース 4 サーバーに接続するクライアント アプリケーションがあります。データベースで。
この問題は時々発生しますが、ほとんどの場合、サーバーが数日間稼働している場合に発生します。再起動すると問題が解決すると思われます。
とにかく、MySQL の結果セットを長時間解放しないと、このメモリ リークが発生し、すべての結果セットを常に解放する必要があるこの奇妙な動作で表示されますか? ただし、同じテーブルと同じプログラムは、別のコンピューターで正常に動作します。
アプリケーションまたは mysql クライアント ライブラリの実装の問題が原因で、結果セットが破損する可能性はありますか?
sql - 大きなテーブルのマスター テーブルと子テーブルの主キーの更新
主キーとして 1 つの列 GUID (アルゴリズムのようなカスタム GUID) を持つマスター テーブルと、この GUID 列と外部キー関係を持つ 8 つの子テーブルを持つかなり巨大なデータベースがあります。すべてのテーブルには、約 300 万から 800 万のレコードがあります。これらのテーブルには、BLOB/CLOB/TEXT や、通常の数値、varchar、日付、およびタイムスタンプ (各テーブルに約 15 ~ 45 列) だけのその他の派手なデータ型はありません。主キーと外部キー以外のパーティションやその他のインデックスはありません。
現在、カスタム GUID アルゴリズムが変更されており、競合はありませんが、古いデータをすべて移行して、新しいアルゴリズムを使用して生成された GUID を使用したいと考えています。他の列を変更する必要はありません。最優先事項はデータの整合性であり、パフォーマンスは二の次です。
私が考えることができた可能な解決策のいくつかは次のとおりです(おそらく、それらはすべて1つのアイデアのみを中心に展開していることに気付くでしょう)
- 新しい列 ngu_id を追加し、新しい gu_id を入力します。制約を無効にします。ngu_id を gu_id として子テーブルを更新します。rename ngu_id->gu_id; 拘束を再度有効にする
- 子テーブルから 1 つのマスター レコードとそれに依存する子レコードを読み取ります。新しい gu_id で同じテーブルに挿入します。古い gu_ids を持つすべてのレコードを削除します
- 制約を削除します。すべての子テーブルが更新されるように、マスター テーブルにトリガーを追加します。古い gu_id を新しい新しい gu_id で更新し始めます。拘束を再度有効にする
- すべての子テーブルが更新されるように、マスター テーブルにトリガーを追加します。古い gu_id を新しい新しい gu_id で更新し始める
- すべてのマスター テーブルと子テーブルに新しい列 ngu_ids を作成します。ngu_id 列に外部キー制約を作成します。更新トリガーをマスター テーブルに追加して、値を子テーブルにカスケードします。新しい gu_id 値を ngu_id 列に挿入します。gu_id に基づく古い外部キー制約を削除します。gu_id 列を削除し、ngu_id を gu_id に名前変更します。必要に応じて制約を再作成します。
- 利用
on update cascade
可能な場合は使用しますか?
私の質問は次のとおりです。
- より良い方法はありますか?(頭を砂に埋められない、やらなきゃ)
- これを行う最も適切な方法は何ですか? (Oracle、SQL サーバー、および mysql4 でこれを行う必要があるため、ベンダー固有のハックは大歓迎です)
- このような演習の典型的な失敗点と、それらを最小限に抑える方法は何ですか?
あなたがこれまで私と一緒にいたら、ありがとう、そしてあなたが助けてくれることを願っています:)
sql - MySQL: v4 から v5 へのクエリの移行
プロジェクトを MySQL 4 から MySQL 5 に移行する場合、クエリの互換性を維持するために対処する必要がある主な事項は何ですか?
一般的には問題ないはずですが、MySQL 4 クエリで暗黙的に機能していたものを MySQL 5 で明示的に定義する必要があることを私は知っています (ただし、正確に何を覚えているかは一生わかりません)。
mysql - ALTERTABLEエラーを無視するにはMySQL4が必要
特定の条件下で自動的に実行されるMySQLスクリプトがあります。その列はデータベースで必要であるため、そのスクリプトはALTER TABLE
コマンドを実行しますが、コマンドがある場合とない場合があります...
ALTER TABLE
列が存在しない場合にMySQL4にステートメントを実行させること、またはこの単一コマンドの重複列エラーを無視してスクリプトの実行を続行できるようにすることは可能ですか?
c# - 複数のテーブルから mysql 4.0 データを結合する最速の方法は?
3 つの mysql 4.0 テーブルがあります。すべてにフィールドID (int)、タイプ( int )、および別のフィールド (値はvarchar (255)、tinyintまたはint ) があります。
それらをすべて書き出す必要があり、最終的に 3 つの DataTable を取得し、それらをループして、行を一時テーブル (.NET 1.1) に作成することになります。
このデータに参加するか、単に書き出すために、これよりも高速でクリーンな方法はありますか?
mysql - MySQL:日付ごとに異なる名前を選択しますか?
日付範囲または date_feild > 2009-06-01 && date_field < 2009-07-01 の行を選択したいとします。first_name_field と last_name_field を選択したいのですが、同じ名前 (F+L) を 1 日に 1 回だけ表示したいのです。したがって、日付が異なる限り、同じ名前が複数回表示される可能性があります。ただし、名前が同じ日付である場合は除きます。それは理にかなっていますか?一定期間に得た問い合わせの数を追跡しようとしていますが、同じユーザーが同じ日に複数の問い合わせを行った場合、それを 1 つとしてカウントしたいと考えています。
私はまだこれをプログラムし始めていないので、すべての提案を受け入れています。
ありがとう!
php - PHP: ユーザー別および製品ブランド別のリクエストを追跡しますか?
価格要求を含む MySQL テーブルがあり、日付、最初、最後、および product_id フィールドがあります。製品ブランドは、product_id の製品テーブルから見つけることができます。
日付範囲が与えられた場合、彼らは、日付範囲内の各日の人別およびブランド別のリクエストの総数と、日付範囲の合計を知りたいと考えています。ここがトリッキーな部分です。同じ人が 1 日に複数回リクエストを行った場合、1 人としてカウントされます。ただし、1 日に 2 つの異なるブランドをリクエストした場合、各ブランドはその日に 1 つ取得されます。ただし、1 日に複数のブランドをリクエストした場合、そのブランドはその日に 1 つしかカウントされません。
たとえば、特定の日に John Doe が 3 つの価格リクエストを作成したとします。バーバリー製品と 2 つのスワロフスキー製品です。これは、人に 1、バーバリーに 1、スワロフスキーに 1 しかカウントされません。しかし、別の人がバーバリーをリクエストした場合、その日はバーバリーが 2 つ、その日は 2 人になります。
これがうまくいくことを願っています。とにかくこれを行う最良の方法は何ですか?PHP4 と MySQL4 を使用しています
ありがとう!