gpt4 book ai didi

php - Sqlite INSERT OR REPLACE INTO 未按预期工作

转载 作者:可可西里 更新时间:2023-11-01 01:03:11 25 4
gpt4 key购买 nike

我花了好几个小时想弄清楚问题是什么 :(

表格如下所示:

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 的父字段的记录都将被删除:(

为什么会这样?

最佳答案

您的 ID 设置为自动递增,因此当您替换某些内容时,ID 也会更改。因为替换意味着删除旧行并插入新行。我不知道 sqlite 是否有 INSERT ... ON DUPLICATE KEY UPDATE

关于php - Sqlite INSERT OR REPLACE INTO 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com