gpt4 book ai didi

mysql - WEBSQL 简单插入填充表

转载 作者:行者123 更新时间:2023-11-29 23:29:40 29 4
gpt4 key购买 nike

似乎无法弄清楚为什么这个简单的语句不起作用

tx.executeSql("INSERT INTO history SELECT * FROM scan");

如果表历史记录为空,则它可以正常工作,这没有多大用处,但如果表历史记录有任何数据,则它不会执行我必须执行的插入:

tx.executeSql("DELETE FROM history", []);
tx.executeSql("INSERT INTO history SELECT * FROM scan");

有什么想法吗?干杯

编辑:

结构相同:

tx.executeSql("CREATE TABLE IF NOT EXISTS scan(ID INTEGER NOT NULL PRIMARY KEY, sunum TEXT, binnum TEXT, userid TEXT, added_on DATETIME, upload_on DATETIME)");
tx.executeSql("CREATE TABLE IF NOT EXISTS history(ID INTEGER NOT NULL PRIMARY KEY, sunum TEXT, binnum TEXT, userid TEXT, added_on DATETIME, upload_on DATETIME)");

最佳答案

问题在于您尝试将重复的主键值插入到 History 表中。从您的结构来看,它们都将 ID 列为 PRIMARY KEY,其中不能包含重复值。

尝试指定除该键之外的所有列:

INSERT INTO History
(sunum, binnum, userid, added_on, upload_on)
SELECT sunum, binnum, userid, added_on, upload_on
FROM Scan

不过,从结构来看,ID 值不会自动递增。如果您不关心 ID 是什么,则可以将 ID 列声明为:ID INT NOT NULL AUTO_INCRMENT

如果您需要从另一个表中提取 ID,则必须执行更新插入或合并到该表中。

关于mysql - WEBSQL 简单插入填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26655122/

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