SQLite v3.7.5
有没有一种方法,使SQLite的外键与cascade delete默认启用?给出以下示例:
CREATE TABLE [Parent] (
[ParentId] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[Name] VARCHAR(50) UNIQUE NOT NULL
);
CREATE TABLE [Child] (
[ChildId] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[ParentId] INTEGER NOT NULL,
[Name] VARCHAR(50) NOT NULL,
FOREIGN KEY(ChildId) REFERENCES Child(ParentId) ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
我能够启用级联删除的唯一方法是PRAGMA foreign_keys = true在事务之前执行命令:
using( var conn = new SQLiteConnection( _conn ) )
{
conn.Open();
var pragma = new SQLiteCommand( "PRAGMA foreign_keys = true;", conn ); …Run Code Online (Sandbox Code Playgroud)