0
這是MS創建表的腳本:參照完整性的N不起作用:N關係
這是一個N:在SchoolclassCode和瞳孔表米之間關係
CREATE TABLE Schoolclasscode (
schoolclassId integer PRIMARY KEY AUTOINCREMENT NOT NULL
);
CREATE TABLE SchoolclasscodePupil (
pupilId_FK integer NOT NULL,
schoolclassId_FK integer NOT NULL,
/* Foreign keys */
FOREIGN KEY (schoolclassId_FK)
REFERENCES Schoolclasscode(schoolclassId)
ON DELETE CASCADE
ON UPDATE NO ACTION,
FOREIGN KEY (pupilId_FK)
REFERENCES pupil(pupilId)
ON DELETE CASCADE
ON UPDATE NO ACTION
);
CREATE TABLE pupil (
pupilId integer PRIMARY KEY AUTOINCREMENT NOT NULL
);
當我刪除SchoolclassCode對象在我的代碼中:
public void DeleteSchoolclass(int schoolclassCodeID, SQLiteConnection con)
{
using (SQLiteCommand com = new SQLiteCommand(con))
{
com.CommandText = "DELETE FROM schoolclasscode WHERE SchoolclassId = @SchoolclassId";
com.Parameters.Add(new SQLiteParameter("@SchoolclassId", schoolclassCodeID));
com.ExecuteNonQuery();
}
}
刪除schoolclasscode表中的條目。但僅此而已。我甚至可以刪除SchoolclasscodePupil中的schoolclasscodeId_FK,但沒有學生被級聯刪除約束刪除。
我該怎麼做?
零班對新生來說可能是一個相當常見的狀態,無論如何 –
@Ben是刪除級聯對學生來說是一個絕望的行動從我哈哈;-)當然它不合邏輯,但好......魔鬼是在細節中。當然,沒有任何課程的學生不會再被加載到我的課程中。但他們仍然在桌子上那是什麼讓我首先困擾我,因爲他們佔用了空間。一個學生可能會有事件報告,這些報告又附有文件......當然,你可能會說現在幾乎一個學生不會經常被刪除,所以我爲什麼要關心其餘的文件......也許...... – msfanboy
好吧,讓我們假設我不要打擾其餘的文件。然後我不在乎RI在這種情況下是正確的:) – msfanboy