問題タブ [check-constraints]

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

sql - 1つのチェック制約または複数のチェック制約?

チェック制約が少ない方が良いのか、それとも多いのかについての提案はありますか?仮にあったとしても、それらをどのようにグループ化する必要がありますか?

である3つの列がありVARCHAR2(1 BYTE)、それぞれが「T」/「F」フラグであるとします。IN ('T', 'F')文字のみを許可するように指定するチェック制約を各列に追加したいと思います。

列ごとに1つずつ、3つの個別のチェック制約がある必要があります。

または単一のチェック制約:

列は論理的に相互に関連していないため、これら3つを分離しておくのが最善だと思います。複数の列を調べるチェック制約がある唯一のケースは、ある列の値と別の列の値の間に何らかの関係があったかどうかです。例:

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

sql-server - このルールで db 制約を設定することは可能ですか?

データに次のチェック (制約?) が適用されていることを確認したい

  • このテーブルは、ハブ/カテゴリごとに 1 つの BorderColour のみを持つことができます。(例: #FFAABB)
  • ただし、複数の null を持つことができます。(このフィールドでは、他のすべての行は null です)

テーブル スキーマ

チェック制約を作成する必要があると思いますか?しかし、私はどのようにわからない、など。

サンプルデータ。

今..次の行を追加すると、SQLエラーが発生するはずです....

何か案は?

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

sql-server - 複数テーブルのチェック制約を作成するにはどうすればよいですか?

この小さなデータベースを想像してみてください...

ダイアグラム

無効な ImageShack リンクの削除 - ボランティア データベースの図

テーブル

協会

ボランティアは複数のイベントにサインアップできます。
イベントには、複数のボランティアが参加する場合があります。

イベントには複数のシフトがある場合があります。
シフトは 1 つのイベントのみに属します。

シフトには 1 人のボランティアのみが配置される場合があります。
ボランティアは、複数のシフトを担当する場合があります。

制約をチェック

  1. チェック制約を作成して、シフトのイベントにサインアップしていないボランティアがシフトに配置されないようにすることはできますか?

  2. チェック制約を作成して、重複する 2 つのシフトに同じボランティアが配置されないようにすることはできますか?

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

sql - SQLCHECK制約の問題

LengthSQL Server 2008を使用していて、、、およびの3つの列を持つテーブルがStartTimeありEndTimeます。このテーブルに次のようなCHECK制約を作成したいと思います。

私はこのようなことを試み始めました:

明らかにこれでは十分ではありませんが、この単純な式でさえ検証されません。エラーが発生します:

「'CK_Test_Length_Or_Time'の検証中にエラーが発生しました。制約を編集しますか?」

これを行う方法について何かアイデアはありますか?

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

database - EclipseLink/JPA で @OneToMany のカーディナリティを指定する方法

@Oneto7 関連付けを課そうとしています。ターゲットの多くの値を指定する属性を想像していましたが、何も見つかりませんでした。そのような属性がない場合、JPA/EclipseLink でそれを達成するにはどうすればよいでしょうか?

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

sql-server - テーブル間の SQL Server の制約

Apartmentテーブル (列 と を含む) とテーブル (列FloorNumBuildingID含む)ApartmentBuildingを持つ SQL Server データベースがありますNumFloorsApartment.FloorNumより大きいことを確認するために (SQL Server UI を使用して) 制約を設定する方法はありますApartmentBuilding.NumFloorsか?

私はこれを試しました:

しかし、どうにかして の列を結合する必要があることに気付きましたがBuildingID、制約内でそれを行う方法がわかりません。

ご協力いただきありがとうございます!

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

java - 最大の主キーを持つエンティティを見つける方法は?

int 主キーを持つエンティティ LearningUnit があります。実際には、それ以上のものはありません。

Entity Concept はそれと次の関係があります。 @ManyToOne @Size(min=1,max=7) private LearningUnit learningUnit;

Concept のコンストラクターで、最大の主キーを持つ LearningUnit を取得する必要があります。LearningUnit がまだ存在しない場合は、インスタンス化します。次に、this.learningUnit を取得/インスタンス化に設定します。

最後に、try-catch ブロックで Concept の空のコンストラクターを呼び出して、entitymanager にカーディナリティ チェックを実行させます。例外がスローされた場合 (すでに別の 7 つのコンセプトが同じ LearningUnit を参照している場合に例外が発生すると予想されます。その場合、新しいより大きな主キーを使用して新しい LearningUnit をインスタンス化します。

また、上記で概説したアルゴリズムに明確な落とし穴がある場合は、それも指摘してください。

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

oracle - Oracle行が一意のタイムスパンを表していることを確認してください

Oracle/PLSQL でプロセスを作成する必要があります。作成する新しい行の start_date と end_date の間の時間間隔が、他の行の他の start_dates と end_dates と交差してはならないことを確認する必要があります。

次に、各行でその条件を確認する必要があります。一致しない場合は、繰り返しの指示を停止し、その後、「与えられた時間間隔が正しくありません」などのメッセージを表示する必要があります。

Oracle/PLSQL で繰り返し命令を作成する方法がわかりません。助けていただければ幸いです。

date_hour_i と date_hour_e で指定された時間間隔が、残りの行で指定された他の時間間隔と交差しないことをテーブルの各行で確認するには、そのようなループまたはスマートが必要です。もう1つの仕様....各行の日付は、クライアントと、指定された時間間隔でクライアントにヘアカットを実行する従業員に対応します....そして、新しい行を導入しないようにしたい同じクライアント(または他のクライアント)と従業員、新しい時間間隔は、同じ/他のクライアントと従業員との他の時間間隔と交差します....私が自分自身を明確にしたことを願っています...

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

mysql - mysqlとトリガーの使用法に関する質問

特定の条件が満たされた場合に挿入を実行したくない(トランザクションはロールバックする必要がある)状況があります。このロジックはアプリケーションコードで記述できますが、何らかの理由でMySQL自体で記述しなければなりません(たとえば、異なる言語で記述されたクライアントはこのMySQL InnoDBテーブルに挿入されます)[これは別の説明です]。

テーブル定義:

トリガーは次のようになります。

私はそれが(未テスト)と書くこともできると推測しています:

しかし、これは機能しません:

次のことが保証されます。

  1. DBは常にMySQLになります
  2. テーブルタイプは常にInnoDBになります
  3. そのNOTNULL列は、常にそのままになります

質問:最初の方法で不快なことはありますか?

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

mysql - 文字列の長さを制御するために MySQL でチェック制約を使用する

問題が発生しました。

MySQL を使用して最初のチェック制約を設定しましたが、残念ながら問題が発生しています。テストに失敗するはずの行を挿入すると、とにかく行が挿入されます。

構造:

挿入ステートメント:

fname 列の文字列の長さは短すぎるはずですが、挿入されています。

ここで基本的な何かが欠けていると確信しています。