タグ付けされた質問 「foreign-keys」

外部キーは、リレーショナル(およびSQL)データベースのデータ整合性機能です。外部キーは、参照整合性制約の対象となるリレーショナルテーブル内の一連の属性です。参照整合性制約では、1つのテーブルAの外部キー属性の値が、指定されたいくつかのテーブルB(Aと同じテーブルになる場合があります)の対応する値と一致する必要があります。

12
MySQLテーブルから制約を削除する方法は?
テーブルから制約を削除したい。私のクエリは: ALTER TABLE `tbl_magazine_issue` DROP CONSTRAINT `FK_tbl_magazine_issue_mst_users` しかし、エラーが発生しました: #1064-SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、FK_tbl_magazine_issue_mst_users1行目で「制約」の近くで使用する正しい構文を確認してください

21
MySQLのエラー1452-子行を追加または更新できません:外部キー制約が失敗します
少し奇妙な問題が発生しています。別のテーブルを参照する外部キーを1つのテーブルに追加しようとしていますが、何らかの理由で失敗しています。MySQLについての知識が限られているため、疑わしい可能性があるのは、参照しようとしているテーブルを参照している別のテーブルに外部キーがあるということだけです。 私はSHOW CREATE TABLE両方のテーブルに対してクエリを実行しましsourcecodes_tagsた。外部キーを持つテーブルでsourcecodesあり、参照されるテーブルです。 CREATE TABLE `sourcecodes` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(11) unsigned NOT NULL, `language_id` int(11) unsigned NOT NULL, `category_id` int(11) unsigned NOT NULL, `title` varchar(40) CHARACTER SET utf8 NOT NULL, `description` text CHARACTER SET utf8 NOT NULL, `views` int(11) unsigned NOT NULL, `downloads` int(11) …

7
外部キーを持つテーブル列をNULLにすることはできますか?
他のテーブルへのID列がいくつかあるテーブルがあります。 外部キーにデータを入れた場合にのみ整合性を強制したい。後で更新してその列にデータを入力する場合は、制約もチェックする必要があります。 (これはデータベースサーバーに依存している可能性があります。MySQLとInnoDBテーブルタイプを使用しています) これは妥当な期待だと思いますが、間違っていた場合は訂正してください。

13
INSERTステートメントがFOREIGN KEY制約と競合しました-SQL Server
次のエラーが発生します。手伝っていただけませんか? メッセージ547、レベル16、状態0、行1 INSERTステートメントは、FOREIGN KEY制約「FK_Sup_Item_Sup_Item_Cat」と競合しました。データベース "dev_bo"、テーブル "dbo.Sup_Item_Cat"で競合が発生しました。ステートメントは終了されました。 コード: insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id, status_code, last_modified_user_id, last_modified_timestamp, client_id) values (10162425, 10, 'jaiso', '123123', 'a', '12', '2010-12-12', '1062425') 最後の列client_idがエラーの原因です。に既に存在する値dbo.Sup_Item_Catを、sup_item ..に対応する列に入れようとしましたが、喜びはありません:-(

8
テーブルの制約を表示するコマンド
PK FK関係を設定しようとしたテーブルがありますが、これを確認したいと思います。PK / FK拘束を表示するにはどうすればよいですか?私はこのマニュアルページを見ましたが、それは例を示していません、そして私のグーグル検索もまた無益でした。私のデータベースはでcredentialing1あり、私の制約付きテーブルはpracticesおよびcred_insurancesです。

30
移行:外部キー制約を追加できません
Laravelで外部キーを作成しようとしていますが、使用してテーブルを移行するとartisan、次のエラーがスローされます。 [Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL : alter table `priorities` add constraint priorities_user_id_foreign foreign key (`user_id`) references `users` (`id`)) 私の移行コードは次のとおりです: 優先度移行ファイル public function up() { // Schema::create('priorities', function($table) { $table->increments('id', true); $table->integer('user_id'); $table->foreign('user_id')->references('id')->on('users'); $table->string('priority_name'); $table->smallInteger('rank'); $table->text('class'); $table->timestamps('timecreated'); }); } /** * Reverse the migrations. …

9
Oracle SQL Developerで特定のテーブルを参照するテーブルを見つけるにはどうすればよいですか?
Oracle SQL Developerの私はテーブルの上に情報を表示していた場合、私は私が(表は、このテーブルによって参照されているので、と)外部キーを見てみましょう制約を、見ることができ、私は何を参照して依存関係を表示することができますパッケージなどはテーブルを参照します。しかし、どのテーブルがそのテーブルを参照しているかを見つける方法がわかりません。 たとえば、私がempテーブルを見ているとしましょう。テーブルの主キーであるを介しemp_deptてempテーブルを参照する、どの部門でどの従業員が働いているかをキャプチャする別のテーブルがあります。テーブルが存在することを知らなくても、テーブルがテーブルを参照していることを(SQLではなくプログラムのUI要素を介して)見つける方法はありますか?emp_idempemp_deptempemp_dept

3
外部キー制約:ON UPDATEおよびON DELETEを使用する場合
私は、MySQL Workbenchを使用してデータベーススキーマを設計しています。これは、ダイアグラムを実行して、それらを変換できるので、かなりクールです。 とにかく、外部キーをサポートしているため、InnoDBを使用することにしました。ただし、外部キーの[更新時]オプションと[削除時]オプションを設定できることに気づきました。誰かが、「制限」、「カスケード」、およびnullの設定を簡単な例で使用できる場所を説明できますか? たとえば、userを含むテーブルがあるとしますuserID。そして、私messageは2つの外部キー(テーブルuserID内の同じ主キーを参照する)を持つ多対多のメッセージテーブルがあるとしuserます。この場合、[更新時]および[削除時]オプションの設定は役に立ちますか?もしそうなら、私はどちらを選びますか?これが良い例ではない場合、これらがどのように役立つかを説明する良い例を考え出していただけませんか? ありがとう

11
MySQLによる一部の外部キーの削除
主キーが他のいくつかのテーブルで使用され、他のテーブルへの外部キーがいくつかあるテーブルがあります。 CREATE TABLE location ( locationID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ... ) ENGINE = InnoDB; CREATE TABLE assignment ( assignmentID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, locationID INT NOT NULL, FOREIGN KEY locationIDX (locationID) REFERENCES location (locationID) ... ) ENGINE = InnoDB; CREATE TABLE assignmentStuff ( ... assignmentID …

12
エンティティオブジェクトは、IEntityChangeTrackerの複数のインスタンスから参照できません。Entity Framework 4.1のエンティティに関連オブジェクトを追加する間
Cityへの参照がある従業員の詳細を保存しようとしています。しかし、検証された連絡先を保存しようとするたびに、例外「ADO.Net Entity FrameworkエンティティオブジェクトはIEntityChangeTrackerの複数のインスタンスから参照できません」が発生します。 たくさんの記事を読みましたが、それでも何をすべきかについて正確なアイデアが得られていません...保存ボタンのクリックコードを以下に示します protected void Button1_Click(object sender, EventArgs e) { EmployeeService es = new EmployeeService(); CityService cs = new CityService(); DateTime dt = new DateTime(2008, 12, 12); Payroll.Entities.Employee e1 = new Payroll.Entities.Employee(); Payroll.Entities.City city1 = cs.SelectCity(Convert.ToInt64(cmbCity.SelectedItem.Value)); e1.Name = "Archana"; e1.Title = "aaaa"; e1.BirthDate = dt; e1.Gender = "F"; e1.HireDate …


3
MySQL外部キー制約、カスケード削除
外部キーを使用して整合性を保ち、孤立を回避したい(私はすでにinnoDBを使用している)。 DELETE ON CASCADEというSQLステートメントを作成するにはどうすればよいですか? カテゴリを削除した場合、他のカテゴリに関連する製品も削除されないようにする方法を教えてください。 ピボットテーブル「categories_products」は、他の2つのテーブル間に多対多の関係を作成します。 categories - id (INT) - name (VARCHAR 255) products - id - name - price categories_products - categories_id - products_id

14
SQL DROP TABLE外部キー制約
このようにデータベース内のすべてのテーブルを削除したい場合、外部キー制約が処理されますか?そうでない場合は、最初にどのように対処しますか? GO IF OBJECT_ID('dbo.[Course]','U') IS NOT NULL DROP TABLE dbo.[Course] GO IF OBJECT_ID('dbo.[Student]','U') IS NOT NULL DROP TABLE dbo.[Student]

10
外部キーの命名体系
私は初めて外部キーでの作業を始めたばかりであり、それらに使用する標準の命名スキームがあるかどうか疑問に思っていますか? これらのテーブルを考えると: task (id, userid, title) note (id, taskid, userid, note); user (id, name) タスクにメモがある場合、タスクはユーザーが所有し、ユーザーはメモを作成します。 この場合、3つの外部キーはどのように命名されますか?または、代わりにそれはまったく重要ですか? 更新:この質問は、フィールド名ではなく、外部キー名に関するものです!

9
外部キーはクエリのパフォーマンスを向上させますか?
ProductsとProductCategoriesという2つのテーブルがあるとします。両方のテーブルは、CategoryIdに関係があります。そしてこれがクエリです。 SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; 実行プランを作成すると、予想どおり、テーブルProductCategoriesがクラスターインデックスのシークを実行します。しかし、テーブル製品の場合、クラスターインデックススキャンを実行するので、疑問に思います。FKがクエリのパフォーマンス向上に役立たないのはなぜですか? したがって、Products.CategoryIdにインデックスを作成する必要があります。再度実行プランを作成すると、両方のテーブルがインデックスシークを実行します。また、推定されるサブツリーのコストが大幅に削減されます。 私の質問は: FKは関係の制約に役立ちますが、他に何か便利なことはありますか?クエリのパフォーマンスは向上しますか? すべてのテーブルのすべてのFK列(Products.CategoryIdなど)にインデックスを作成する必要がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.