問題タブ [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 投票する
2 に答える
532 参照

sql-server - 単純なチェック制約はそれほど単純ではありません

2回目の編集:関連する関数のソースコードは次のとおりです。

編集:サンプルテーブルは単純化したものです。これがスケーラー関数/CHECKCONSTRAINT操作として機能するために必要です。実際の配置はそれほど単純ではありません。

元の質問:FileUriという名前の次のテーブルを想定します

FileUriId、FileId、FileTypeId

FileTypeIdが1の場合にFileIdが一意になるように、チェック制約を記述する必要があります。同じFileIdを必要なだけ挿入できますが、FileTypeIdが1の場合は1行のみです。

うまくいかなかったアプローチ:

1)dbo.fn_CheckFileTypeIdは、次のロジックでINTを返します。 SELECT Count(FileId) FROM FileUri WHERE FileTypeId = 1

2)ALTER TABLE FileUri ADD CONSTRAINT CK_FileUri_FileTypeId CHECK dbo.fn_CheckFileTypeId(FileId) <= 1

FileId 1、FileTypeId 1を2回挿入すると、2回目の挿入が許可されます。

ありがとうSO!

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

mysql - 外部キー、mysqlの被参照テーブルにチェック制約を与える方法は?

リレーショナルテーブルにデータを挿入すると、制約の例外が発生しません

0 投票する
5 に答える
64011 参照

mysql - MySQL テーブルにカスタム CHECK 制約を追加するにはどうすればよいですか?

このテーブルに問題があります

私は外部キー制約を持ちたいのですが、それはうまくいきます。次に、属性に制約を追加してstatus、値「a」、「d」、および「u」のみを取得できるようにします。Enumフィールドをまたはとして設定することはできませんset

このコードが MySQL で機能しない理由を誰か教えてもらえますか?

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

sql - Oracle11g-RegExで制約をチェック

Oracle 11gを使用していて、作成時に制約を定義するテーブルを作成しようとしています。

いくつかの情報(電子メールアドレス、電話番号など)を検証するためにチェック制約を追加しようとしていました。

Oracle 11gに、このようなことを可能にする何かがありますか?

私が使用したかった正規表現(regexLibから取得)は次のとおりです。

Oracle 11g(間違っている場合は訂正してください)は、正規表現のこの形式をサポートしていないと思います...

REGEX_LIKEを使用するメソッドを見たことがありますが、これはWHERE句でのみ機能するようです。

トリガーや外部関数/スクリプトではなく、チェック制約として保持したいと思います。

また、私はここで他のスレッドを読んだことがありますが、「正規表現」は電子メールアドレスの形式やそのような情報を確認する良い方法ではないと言う人がいます。コメントには理由が記載されていませんが、理由があればその理由を知りたいです!

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

mysql - MySql 制約が mysql Ubuntu で機能しない

クラシック コマンドを使用して、ubuntu に mysql をインストールしました。

そして驚いたことに、「チェック」で書いた制約を尊重しないのはmysqlです。バグなのか、それとも mysql で制約を使用する方法がわからないのか教えていただけますか? (私は主に単純なSQLでコマンドを書きました)

たとえば、次のコマンド:

テーブルは次のようになります。

どうすればそれが可能になりますか?

0 投票する
7 に答える
3874 参照

sql - 制約付きのSQL一意値の確認

テーブルにID、値、ステータスの3つの列がある状況があります。個別のIDの場合、値が1のステータスは1つだけであり、IDが値0のステータスを複数持つことができるようにする必要があります。一意のキーを使用すると、IDが複数のステータス(0または1)を持つことを防ぐことができます。

おそらく制約を使用して、これを解決する方法はありますか?

ありがとう

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

java - チェック制約を追加する方法をHibernate

Java側にフィールドがあります。

したがって、SQL(私はPostgreSQLを使用)側で効果があります。

ただし、次のようにチェック制約を追加したいと思います。

Java(hibernate)側でどのように定義できますか?

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

sql - Oracle SQL-データ属性を決定するためのチェック制約でCASEを使用できますか?

Oracle 10gを使用していて、ある列に入力された値によって別の列がNULLかISNOTNULLかが決まるテーブルに制約を適用したいと思います。Column1には1または0のみを含めることができます。Column2はVARCHAR2(255)です。

私は次のことが機能することを知っています:

ただし、CASEを使用してこの制約を実行し、col2に属性NOT NULLを設定できるかどうか、またはCASEは値の定義にのみ使用できるかどうか疑問に思いました。つまり、このような作品のようなものである可能性があります。

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

sql - SQLでの制約の確認-値がnullまたは制約である可能性があることを指定します

要件が次の場合、SQLiteにチェック制約を組み込むことを試みています。

  1. 値はnullである可能性があります
  2. 値がnullでない場合は、3より大きくする必要があります。

だから、私の作成テーブルに私は書いた

このため、テーブルを作成しているように見えますが、大なり記号の条件は適用されません。

そして私も試しました

これは、そもそもテーブルを作成することすらありません。

誰かがこれらの制約の両方を実施する方法を手伝ってもらえますか?

ありがとう

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

sql - SQL テーブルで許可されるレコード数を制限するにはどうすればよいですか?

親と子の 2 つのテーブルがあるとします。親には MaxChildren (int) フィールドがあり、子には親レコードにリンクする Enabled (ビット) フィールドと ParentID (int) フィールドがあります。

Enabled = 1 の親ごとに MaxChildren を超えるレコードが存在できないような制約を設定したいと思います。これは、Child テーブル内のレコードを挿入または更新しようとすると、該当する MaxChildren の値、または該当する子レコードの現在の数よりも MaxChildren を下げようとする試みは失敗します。

私は MS SQL Server を使用していますが、標準的な SQL の方法があることを願っています。