問題タブ [sql-domain]
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.
python - SQLAlchemy でカスタム PostgreSQL ドメインを表す方法は?
既に SQLAlchemy テーブル定義を使用しているプロジェクトに Alembic を組み込み始めています。現在、DB スキーマはアプリケーションの外部で管理されており、スキーマ全体をテーブル定義ファイルに取り込みたいと考えています。
PostgreSQL では、電子メール アドレスを格納するためにカスタム ドメインを使用しています。PostgreSQL DDL は次のとおりです。
SQLAlchemy で、このドメインの作成と列データ型としての使用をどのように表現すればよいですか?
postgresql - テキスト データ型のドメインはテーブルにテキストとして格納されますか? (PostgreSQL)
set
PostgreSQL にはタイプがないため、使用する必要がありdomain
ました。私はドメインに性別という名前を付けました。テキストタイプです。次に、 users テーブルにその性別タイプの列を作成しました。では、性別はユーザー テーブルにどのように格納されるのでしょうか。テキストまたはバイナリとして?
java - データモデルからDDLを生成しながら、列挙型からドメインを生成する方法は?
enum
データ モデルから DDL を生成するときに定義されたフィールドのドメインを生成する方法はありますか?
として定義されているフィールドのデフォルトの動作enum
は、EnumType.STRING
またはEnumType.ORDINAL
です。この特定のケースでは、 を使用します@Enumerated(EnumType.STRING)
。
MyEnum.java
MyEntity.java
残念ながら、これは「のみ」と定義されていcharacter varying(255)
ます (私は PostgreSQL RDBMS を使用しています)。
これはもちろん、実際の とは関係のないゴミをそこに置く機会を与えますenum
。
この場所で、Hibernate にヒントを与えて、実際に列挙に属する値のみが許可されたドメインを生成できるようにしたいと考えています。
@Check
回避策として、注釈を使用してチェック制約を生成したいと考えました。ただし、これは残念ながら動的に行うことはできません。MyEnum.values()
列挙型が追加の値を取得するときに同時に変更する必要がないように、このチェックを生成するためにをループしたかったのです。
もちろん、これは構文エラーにつながります
注釈属性 Check.constraints の値は定数式でなければなりません。
コンパイル時に属性値を決定する必要があるため、これは明らかです。
巧妙な方法でそれを行う他の方法はありますか?
postgresql - jOOQ および PostgreSQL ドメイン: 特定のオブジェクト タイプへのマッピング
PostgreSQL 9.5 と jOOQ 3.8.4 を使用していくつかのテストを行っています。
具体的には、次のようなドメインを作成したいと考えています。
次に、次のようにタイプを作成します。
そして最後に、フィールドとしてタイプを持つテーブルがあります。
jOOQ 3.8.4 がフィールドのマッピングを(int テーブル レコードと POJO の両方で)something
として生成することがわかります。Object
ドメインBigDecimal
はNUMERIC
.
私が間違っている?そうでない場合、問題を克服する方法はありますか?
customTypes
and を使用しforcedTypes
てコンバーターを登録できるかもしれませんが、ユーザー定義型で機能するかどうかはわかりません! こちら側での経験はありますか?
arrays - クエリから返された各行に対してセットを返す plpgsql 関数を呼び出す
私の Postgres 9.6 データベースには、次のカスタム ドメインとテーブル定義があります。
次の関数は、単一のアイテムに対して必要な結果を生成できます。
特定のクエリを実行して生成されたすべて のに対して同じことを行い、最終的に次のような結果を得たいと考えています。id
postgresql - DOMAIN で CHECK 制約を ALTER する
Postgres 13.4 で既存の制約の詳細を変更する方法はありますか?DOMAIN
私は試し、ドキュメントをチェックしてきましたが、答えは「いいえDROP
、制約(またはドメインと制約?)、および再構築」であると思われます。
DROP
すでに制約を使用しているフィールドと関数があるため、これは厄介ですCREATE
。私はそれを行うことができますが、それは少し複雑です。
例として、次のような単純なドメイン リストがあります。
もう1 つ名前を挿入VALUE IN
して、 のリストを変更したいと思います: 。CHECK
'user_analytics'
ドメイン、制約、またはその両方を削除して再構築せずにこれは可能ですか?
そうでない場合は、カスケードされた削除と再構築を行い、DOMAIN
この種の適切なツールではない将来を予測できます。代わりに小さなルックアップ テーブルをいつでも使用できます。DOMAIN
パラメータと列の意図がより明確になるので、私は好きです。