我试图将另一个表中的数据插入此表。如果该行存在,那么我希望它增加一个计数值。
这就是我所拥有的:
INSERT INTO bookmarks
SELECT Title, URL FROM tempt
ON DUPLICATE KEY UPDATE CountVal=CountVal+1;
bookmarks
有更多列。两个表都有title
和url
; url
是主键。
更新2:
我得到了它的工作
insert into bookmarks (Title, URL)
SELECT Title, URL
from tempt
ON DUPLICATE KEY UPDATE CountVal=CountVal+1;
但我想知道这些数字。我在文件中使用加载数据将数据放入临时表中,然后我使用上面的代码更新实际表格,但数字不匹配,我想知道为什么会这样。
加载数据:受影响的行数为417。 0.08秒
插入:810行受影响。 0.16秒
有什么想法吗?
答案 0 :(得分:0)
由于两个表中的列号不同,因此您必须指定列的名称:
INSERT INTO bookmarks (Title, URL) VALUES(
SELECT Title, URL
FROM tempt
)
ON DUPLICATE KEY UPDATE CountVal=CountVal+1;
这将起作用 IF :
bookmarts
表的标识字段设置为auto_increment
URL
和Title
字段在两个表中都以相同的方式定义NOT NULL
。