【发布时间】:2021-07-08 03:13:48
【问题描述】:
我正在使用以下代码:
$db = new SQLite3('test.db');
$db->exec("CREATE TABLE IF NOT EXISTS items(id INTEGER PRIMARY KEY, the_id TEXT UNIQUE, type TEXT)");
$db->exec("INSERT INTO items(the_id) VALUES ('abc')");
$db->exec("UPDATE items SET type = 'One' WHERE the_id = 'abc'");
$final = $db->query("SELECT * FROM items");
print_r($final->fetchArray(SQLITE3_ASSOC));
但是,我一直收到SQLite3::exec(): UNIQUE constraint failed: 的$db->exec("INSERT INTO items(the_id) VALUES ('abc')");。
如何在表格中插入新行?
如果表为空,脚本将运行良好并添加新行。
如果表包含 1 条记录,它将运行而不会出错,但不会添加新行 ,即使 the_id 是唯一的。
如果表包含 1 条记录并且我再次运行它,它将运行 上面提到的错误。
如何在此表中添加新行?
编辑
为了确认,我添加了不同的 the_id 值,并且由于某种原因,当值是唯一的时,它只允许表中的最大值为 1
【问题讨论】:
-
似乎该行已添加,因此当您再次运行时会收到错误消息。仔细检查表格。 “UNIQUE 约束失败”错误意味着表中有一行在唯一列中具有相同的值。