相关疑难解决方法(0)

如何在SQLite中默认启用外键级联删除?

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)

c# sqlite foreign-keys system.data.sqlite

7
推荐指数
1
解决办法
6328
查看次数

标签 统计

c# ×1

foreign-keys ×1

sqlite ×1

system.data.sqlite ×1