1

ダミー アプリケーション : 20 個のテーブルを持つ sqlite データベースを作成し、外部キー機能が有効になっています ( "PRAGMA foreign_keys = ON")。このデータベースは、Assests フォルダーを介して別のアプリケーションに使用されます。私の質問は、外部キーがサポートされていないことです。

元。CREATE TABLE Student(Studend_id Integer not null,student_name String, FOREIGN KEY ((Studend_id ) REFERENCES Dept(Deptid));

CREATE TABLE Dept(Deptid Integer not null,dept_name String) 

部門テーブルのデータは

Deptid   dept_name
500      cse
400      ece

ダミーアプリケーションで、学生に列を追加しようとすると、例外がスローされ、外部キーが誤ってマッシュされます

insert into student(300,"sri");

同じクエリをアプリケーションで実行しようとしましたが、例外はスローされず、ここに列が追加されました外部キ​​ーはサポートされていません。

4

2 に答える 2

1

あなたの場合、Student テーブルは Dept テーブルの deptid 列を参照します。ご覧のとおり、Dept テーブルの deptid 列の値は 300 ではありません。

Deptid   dept_name
500      cse
400      ece

dept テーブルに値 300 がないため、新しいレコードを挿入できません。あなたの学生テーブルは、値の部門テーブルに依存しています。もし、あんたが

Deptid   dept_name
500      cse
400      ece
300      eee

それならうまくいったでしょう。つまり、Dept テーブルに存在しない値を Student テーブルに作成することはできません。お役に立てれば。

于 2013-04-03T07:20:30.483 に答える