問題タブ [sql-generation]

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 に答える
1080 参照

sql - SQLジェネレーターを作成する場合、何を読む必要がありますか?

間もなく、メタデータを取得し、そこから動的SQLを生成するコンポーネントを作成する予定です。ほとんどの場合、SELECT、INSERT、UPDATE、DELETEの話をしていますが、CREATE /ALTERTABLEステートメントをいくつか含めることも可能だと思います。

既存のORMソリューションは法案に適合しないと確信していますが、それ以外の点では、どこでどのように詳細がまだ少し曖昧です。

私は他の開発者と同じようにSQLステートメントを書くことができ、過去にNHibernateを少し使用したことがありますが、データベースやORMの背後にある理論についてはほとんど何も知りません。準備作業を行いたいので、推奨される読み物やコードを探しています。

ちなみに、私のコーディング環境は.NET(C#)とSQLServerです。

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

hibernate - Hibernate でビルド時に JPA Entity CRUD 操作に一致する SQL クエリを生成する方法

JPA アノテーション付きエンティティが与えられた場合、CRUD 操作 (EntityManager に対して実行される) のために Hibernate によって実行されるクエリのリストを (実行前に) 生成することは可能ですか? 名前付きクエリの場合、org.hibernate.hql.QueryTranslator を使用して可能です

Hibernate API へのポインターは高く評価されます。

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

php - Doctrine SQL/テーブル生成の失敗

YAML スキーマを使用して以前に作成した一連のモデルから Doctrine に SQL を生成させようとしています。マニュアルにある以下のコードを使用すると、出力は一連のクエリになるはずです。

ただし、このコードの結果は次のとおりです。

前に述べたように、SQLクエリを含む文字列を返す必要があります。

私も次のことを試しました:

しかし、それも返します:

マニュアル、API リファレンス、または Doctrine コア ファイルで解決策を見つけることができませんでした。ここの誰かが知っていることを願っています。

前もって感謝します。

更新: A または B で始まるテーブル名がないため、この(古い?) バグが原因ではありません。

更新:私の bootstrap.php は次のようになります。

更新:行を変更しました:

に:

しかし、の出力

はまだ空の配列です。

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

mysql - SQL::Abstract を使用して SQL クエリを生成するにはどうすればよいですか?

SQL::AbstractWHEREを使用してこのクエリの句を生成するにはどうすればよいですか:

SELECT COUNT(*) FROM table WHERE id = 111 AND NOT FIND_IN_SET(type, '1,2,3,4') AND status = 'pending';

のような条件を含める適切な方法は何WHERE FIND_IN_SET(type, '1,2,3,4')ですか?

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

sql - 2つの列から最小値と最大値を見つけます。最小から最大までの日付を生成

SQLServerDBにテーブルがあります。

次を返すT-SQLクエリを作成する必要があります。

結果セットのエントリ数は、DBのテーブルの「Open_date」列と「Close_date」列の両方の最小値と同じ列の最大値の間の月数に等しくなります。問題は、2つの日付列から最小値と最大値を見つけ、最小から最大までの日付を生成し、この一時テーブル(またはそれが何であるか)を使用して、一時テーブルからのすべての日付のオープンエントリとクローズエントリの数をカウントする方法です。

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

c# - EntityFrameworkのLINQパーサーが外部で定義された述語を異なる方法で処理するのはなぜですか?

私はMicrosoftのEntityFrameworkをORMとして使用していますが、次の問題を解決する方法を考えています。コレクションから、今日よりも大きいProductオブジェクトをいくつか取得したいと思います。(これは問題全体の簡略版です。)ProductsProduct.StartDate

私は現在使用しています:

これを実行すると、ToList()たとえばクエリで使用した後、機能し、作成されたSQLは効果的に次のようになります。

ただし、保守性を高めるために述語を関数に移動したいので、これを試しました。

これは、同じセットを返す限り、コードの観点からも機能しますProductが、今回作成されたSQLは次のようになります。

フィルタはSQLServerからクライアントに移動されるため、効率が大幅に低下します。

だから私の質問は:

  • なぜこれが起こっているのですか、なぜLINQパーサーはこれらの2つの形式をそれほど異なって扱うのですか?
  • フィルタを分離してサーバー上で実行することを利用するにはどうすればよいですか?
0 投票する
0 に答える
654 参照

sql - "Business Objects" はどのように SQL を生成しますか?

Is there a set of rules that Business Objects uses to generate SQL? I have just run into situation where the order of joins actually seriously affected the performance and it would be really nice to know what parameters does BOBJ use to decide how to order the tables.

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

ef-code-first - EF Code First は、モデルに存在しなくなった余分な列をクエリに追加します

これはSOに関する私の最初の質問です。

ORM として EF Code First を使用し、バージョン移行のために FluentMigrator を使用している ASP.NET 4.0 MVC3 プロジェクトがあります。そして、次のような Message エンティティ クラスがあります。

カスタム マッピングが定義されておらず、MSSQL Server 2012 データベース テーブル メッセージ:

Link_Id、Collection_Id、および MessageType 列は、TPH 継承を行いたいため、そのテーブルにあります (実際には、TPT 継承を行い、TPH に切り替えました。問題は解決すると思いましたが、解決しませんでした)。

今のところ、次のような LinkMessage および CollectionMessage クラスが必要です。

したがって、問題は次のとおりです。リンクナビゲーションプロパティを削除し、プロジェクトを再構築し(データベースを再作成するなど)、単純なクエリを実行すると、継承が定義されていない(つまり、メッセージエンティティのみが存在する)場合でも、var a = DBContext.Messages.ToList(); EFは次のクエリを生成します:

Link_Id がまだ含まれているのはなぜですか? それはもはやモデルではありません。これにより、継承で問題が発生します。上記のサブクラスで TPH (または TPT) 継承を行うと、アプリは「列名 'Link_Id1' が無効です」というエラーで失敗します。Link_Id1 の理由 これはどのように起こりますか?私は完全に混乱しています。「Collection_Id」列は正常に動作します。これら 2 つの列は同一です。データベースを再作成しようとし、アプリのすべてのプロセスを強制終了し(PCを再起動しても)、以前のリビジョンをロードしようとし、そこに Message.Link_Id プロパティを削除し、データを使用して試行し、データなしで試行しました-同じ動作。私は何かをグーグルで検索しようとしましたが、実際には適切な検索クエリを作成する方法さえ知らず、行った検索でも何も得られなかったため、何も得られませんでした.2日目を費やしています...

以下は、彼らが生成しているクエリと SQL です。

Link_Id および Link_Id1 列を照会するのはなぜですか? 誰か助けてください、何が足りないのですか?

UPD:カスタム DBInitializer を削除し、Code First で DB を作成すると、「Messages」テーブルに追加の列「Link_Id1」が作成されます。

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

sql - ランダムデータSQLサーバー2008の生成(firstName姓アドレスなど..)

いくつかのテストを行う必要があるため、400000 レコードのデータベースを生成する必要があります

私は簡単な方法でそれを行いました

私の問題は、ある種の一意の FirstName、Surname、および Address をどのように生成するかです。

サードパーティのツールは使用できないので、紹介しないでください。

お時間をいただきありがとうございました