問題タブ [check-constraint]

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

oracle - Check で where 句を使用する

別のフィールドが特定の値である場合にフィールドが NULL になる可能性があり、それ以外の場合は NOT NULL である必要があるという状況があります。

2 つの制約を作成しました。1 つ目は、「Type」に特定の値のみを入力できるようにするものです。

もう 1 つの制約 (エラーが発生し、右括弧が欠落している) は、"Type" が特定の型の場合、BestandLocatie が NOT NULL であることを確認する必要があります。

Where 句を検索したところ、select ステートメントでしか例が見つかりませんでした。これは、ここでは使用できないことを意味しますか、これを行う他の方法はありますか、それとも最終アプリケーションでこれを確認する必要がありますか、それとも PLSQL でのみ行うことができますか?

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

sql-server - SQL Server 2012: CHECK 制約でユーザー定義関数を呼び出す

それでも返す関数を作成しましたがint 、CHECK 制約では使用できません。このエラーが出力されます。

'myFunction' は認識される組み込み関数名ではありません。

私も試しました

CHECK制約でユーザー定義関数を呼び出すことはできないと人々が書いているのを見ましたが、ここではそれが可能であると書かれています:

CHECK 制約 スカラー値を返すユーザー定義関数は、関数に渡される引数値がテーブルまたは定数の列のみを参照する場合、CHECK 制約で呼び出すことができます。クエリ プロセッサが制約をチェックするたびに、クエリ プロセッサは、チェック中の現在の行に関連付けられた引数値を使用して関数を呼び出します。テーブルの所有者は、テーブルの CHECK 制約によって呼び出されるユーザー定義関数の所有者でもある必要があります。
0 投票する
0 に答える
570 参照

sql-server - SQL Server の複数の外部キー - 1 つの外部キーの設定のみを許可および制限する

次の SQL テーブルがあります。

このテーブルは、アップロードされたドキュメントを格納します。さまざまなエンティティのドキュメントをアップロードできます。

  1. ユーザー
  2. 組織
  3. クライアント
  4. 連絡先
  5. 取引

この 1 つのテーブルには、アップロードされたドキュメントが格納され、関連するエンティティにリンクされます。この構造により、Document テーブルに外部キーを追加するだけで、後でドキュメントを他のテーブルにアップロードする機能を追加できます。

スペースを節約するために、すべての外部キー「スパース」列を作成しました。これらの列の 1 つだけが値を持つためです。

重要なルール: 1 つのテーブルに正確にリンクする必要があります。どのテーブルにもリンクできません。複数のテーブルにリンクすることはできません。

データベース レベルでこれを確認するにはどうすればよいですか。チェック制約を使用することを考えていましたが、その構文は複雑になる可能性があります (20 の異なるテーブルのドキュメントをアップロードするとどうなるでしょうか)。

誰かが解決策をお勧めできますか。

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

sql-server - SQL Server でフォーマットされた文字列の制約を確認してください

次のように定義されたテーブルがあります。

コードを実行すると動作しますが、データを挿入すると

insert into HLV values ('HLV0001',GETDATE(), 10,5,6)

エラーが発生しました

列名または指定された値の数がテーブル定義と一致しません。

チェックが間違っているからでしょうか?

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

sql - パスワード チェック制約 SQL サーバー

以下を含む必要があるパスワード制約を作成しようとしています。

-少なくとも 1 つの大文字

- 少なくとも 1 つの数字

- 少なくとも 5 文字の長さ

私はたくさん検索しましたが、うまくいきません

たとえば、私はこれを試しました

現在、パスワードに数字が含まれている場合は受け入れますが、パスワードに大文字がまったく含まれていない場合、または大文字のみが含まれている場合も受け入れます。これは私を混乱させ、多くの組み合わせを試しました

それもうまくいきませんでした。私はstackoverflowから多くのコードスニペットを試しましたが、人々はそれを回答済みとしてマークしました。私は今とても混乱しています

これはパスワード「wefwefew123」を許可しないはずですよね?そうですね。ただし、「wefwefew」は受け入れないため、0 ~ 9 で機能します。AZ の何が問題なのですか?

それはおそらくばかげた間違いであり、後で私はおそらくばかげていると感じるでしょうが、私は自分でそれを解決することはできません.私はプロではないことに注意してください;)

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

sql - SQL 同じテーブルに alfred または Alfred または alfr のような名前を付けたくない

これは私がやろうとしたことですが、うまくいきません:

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

sql-server - SQL Server 2014 でテーブル型のチェック制約の名前を変更できますか?

SQL Server 2014 では、CREATE TYPE ... TABLE名前付きチェック制約はサポートされていません。

これにより、不可解な名前 (例: CK__TT_Income__Incom__72BBEAA9) を持つチェック制約が生成されます。

このような制約は に保存されsys.check_constraintsていますが、 を使用してそのうちの 1 つを名前変更できませんでしたsp_rename

テーブル タイプに関連付けられた制約の名前を変更しようとすると、次のエラー メッセージが表示されます。

メッセージ 15248、レベル 11、状態 1、プロシージャ sp_rename、行 424
パラメータ @objname があいまいであるか、要求された @objtype (オブジェクト) が間違っています。

これが私のテーブルタイプです:

「最も正しい」試行は、次のリストの最初に表示されます。

次に、テーブル型の内部形式を試します

最後に、テーブル型の「ユーザー」形式を試してください

要するに、ユーザー定義のテーブル型に関連付けられたチェック制約の名前を変更する方法はありますか?

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

oracle - Oracle:関数パラメータ - 実装方法は?

少し問題があり、助けを求めたいです:)

簡単にするために、Oracleデータベースを使用していて、テーブルの1つ、つまり以下に「チェック制約」を作成したいと考えています。

テーブル XY

属性 A || 属性 B || 属性 C

属性 A と B の場合、ユーザーは好きなものを追加できます。属性 C の場合、ユーザー定義関数を使用して「チェック制約」を使用したいと考えています。これは、A と B の組み合わせが有効かどうかをチェックします。

私の問題は、関数の入力パラメーターを実装する方法がわからないため、ユーザーがデータベースにエントリを作成している間にチェックを行うことができることです。

つまり、ユーザーはすでにA に 1 を追加し、B に 3 を追加しており、C のエントリを追加したい場合、(例) A + B = 4かどうかを確認したい

私は今バナナに行くので、あなたが私を助けてくれることを願っています x)

よろしくアレックス

編集(以下のコメントからコピー)

私は3つのテーブルを持っています:

  1. グループ
  2. GROUP_LIST
  3. TM

GROUPGROUPには aのID が含まれています。 はと のGROUP_LIST間の接続テーブルです。つまり、a を TMに接続していますが、1を複数の s fe に接続することは可能です。GROUPTMGROUP_LISTGROUPGROUPTM

などなど、私の本当の問題は次のとおりです。ここで、入力しようとしているTMが同じGROUPIDに既に存在するかどうかをチェックするTM属性をチェックしたいと思います。私の意図が明確になったことを願っています...