我试图找出几个小时的问题:(
表如下所示:
CREATE TABLE IF NOT EXISTS pages(
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
parent INTEGER DEFAULT NULL,
content TEXT,
time INTEGER,
FOREIGN KEY(category) REFERENCES categories(id) ON DELETE CASCADE,
FOREIGN KEY(parent) REFERENCES pages(id) ON DELETE CASCADE,
UNIQUE(title) ON CONFLICT REPLACE
)
插入查询:
INSERT OR REPLACE INTO pages (title, parent, content, time) VALUES (?, ?, ?, ?)
title
应该是唯一的,所以如果它找到具有相同标题的记录,它应该替换它。它被替换了,但 ID 也发生了变化!这是一个问题,因为所有其他具有指向旧 ID 的父字段的记录都将被删除:(
为什么会这样?