問題タブ [unique-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.
sql - Oracleでの1->1/1->Nの関係?
私は2つのテーブルを持っています
foo_id は、それぞれのテーブルの両方の主キーです。2 番目のテーブルの foo_id は、最初のテーブルへの外部キーです。シーケンスを使用して両方のテーブル値の PK を生成し、挿入を試みます。1 回は FooHeader に、2 回は FooBody に挿入します。
私のコードは、エラー「ORA-00001: 一意の制約 (USERID.FooBodys_PK) に違反しています」からのループで t_FooBodys への 2 番目の挿入でクラッシュします。
だから私は2つの質問があります:
1) MSSQL Server と Oracle の根本的な違いは何ですか? これはSQL Serverでうまくいきました!私はそこに常に1対1/多の関係を持っていました
2) 別のキーを追加して基本的に共有主キーの概念を終了する以外に、これを修正する最も簡単な方法は何ですか?
どうもありがとう
database - DBに固有の制約が必要ですか?
私は最近疑問に思っています。JSF + Spring + JPA / Hibernate(またはその他のテクノロジー)を使用してWebアプリを実行していて、「ユーザー」エンティティがあるとします。ユーザーに一意のログインを許可する必要があります。それを実行したい場合は、「ログイン」列に@UniqueConstraintを配置できますが、それでもアプリケーションは、ユーザー登録中に、ユーザー入力が有効(一意)であるかどうかをチェックする必要があります。これは、DB制約がある場合のみです。単にエラーが発生します。これは私に考えさせられました、DB制約は本当に必要/役に立ちますか?彼らが私たちに利益をもたらすと私が考えることができるのは、誰かが私たちをハッキングしようとしたとき(しかし、私たちのアプリはとにかくSQLインジェクションプルーフでなければならない)またはDBコンテンツを手動で変更しようとしたときだけです(これはすべきではありません)本当に起こります)。実は今考えてみると、DB制約は一般的に必要/グッドプラクティスですか?文字列の長さなどのように。
sql - Entity Framework: SQL 制約が原因で発生する例外を適切に処理する方法
Entity Framework を使用して SQL データにアクセスしています。データベース スキーマにいくつかの制約があり、これらの制約が原因で発生する例外をどのように処理すればよいか考えています。
例として、2 人のユーザーが (ほぼ) 同一のエンティティを同時に DB に追加しようとすると、次の例外が発生します。
この特定の例外を適切にキャッチするにはどうすればよいですか?
汚い解決策:
このアプローチは機能しますが、いくつかの欠点があります。
- タイプ セーフなし: コードは、一意の列の名前を含む例外メッセージに依存します。
- SqlCLient クラスへの依存 (壊れた抽象化)
これに対するより良い解決策を知っていますか?すべてのフィードバックをありがとう..
注:アプリケーション層内で手動で制約をコーディングしたくありません。DB に入れたいのです。
mysql - MySQL は一意の制約で null 値を無視しますか?
ユニークにしたいメール列があります。しかし、null 値を受け入れることも必要です。私のデータベースはそのように2つのヌルメールを持つことができますか?
sql-server - 一意のインデックスまたは一意のキー?
一意のインデックスと一意のキーの違いは何ですか?
sql - nullを許可する列をSQLServer2005から一意にするにはどうすればよいですか?
nullを許可する列がテーブルにありますが、nullまたは一意にする制約を作成したいのですが...どうすればよいですか?
注:フロントエンドから検証しますが、この開発者でもデータを入力できるように、SQLサーバーに物理的なものが必要です
sql - 一般エラー: 1 OCIStmtExecute: ORA-00001: 一意の制約 (HR.SYS_C004023) に違反していますか?
一意の値の制約が原因で、テーブルが「ブランチ」であり、SYS_C004023 がどこから来たかというエラー メッセージを特定できます。ブランチ テーブルを確認しましたが、値の重複はありません。何が問題になる可能性がありますか。
nhibernate - Fluent NHibernate がコンポーネントの一意の制約を無視するのはなぜですか?
私のマップには次のものがあります。
HBM からの関連する出力は次のとおりです。
unique="true"
これは定義から明らかに欠落していcomponent
ます。
なぜこうなった?
ruby-on-rails - accept_nested_attributes および validates_uniqueness_of
中心的な問題:ネストされたフォームからの一括割り当て中に、キーによって属性コレクションをどのようにマージしますか。
詳細:次のモデルを使用しています。
そのため、場所ごとに 1 つのコンテナー タイプしか持たないという制約があります。次のビューは、場所と関連するコンテナーをレンダリングします。
管理者/コンテナ/_index.html.erb
管理者/コンテナ/_form.html.erb
module Admin::ContainersHelper
基本的に、ヘルパーはコレクションに新しいコンテナーを追加しますが、すべての型が既に関連付けられているか、コレクションに新しいコンテナーが既に存在する場合を除きます。このコンテナは、まだ定義されていない最初のコンテナ タイプに事前に初期化されます。これはこれまでのところかなりうまくいっています。コンテナの追加は機能します。コンテナの削除は機能します。
問題は、コレクションに既にあるコンテナタイプを選択して追加すると、それらの数を合計する必要があることです(代わりに、一意の制約に違反します)。完全な魔法を実装/再発明せずに最善の方法が何であるかはわかりませんaccepts_nested_attributes_for
-実際には、それを使用してコードと複雑さを増加させるのではなく、削減したかったのです。
sql - 制約名を知らずにテーブル列に一意の制約をドロップする
Oracle 10g では、制約の名前 (データベース インスタンス間で必ずしも同じではないシステム生成名など) を知らずに、列の一意の制約を削除するにはどうすればよいですか? テーブルを削除して再作成することはできません。出来ますか?