我有一张table可以数风景:
post_views table
___________________________________
| | | |
| id | post_id | views |
|________|_____________|___________|
在哪里 post_id
与 id
的 posts
表格:
posts table
__________________________________________
| | | | |
| id | title | text | .. |
|________|___________|__________|_________|
每个 id
从 posts
中应该有一行 post_views
table,所以 id
是表和视图中的主视图 post_id
是独一无二的。
我想增加 views
如果 post_id
存在,否则插入新的 post_id
.
所以我使用这个查询:
INSERT INTO post_views (`post_id`, `views`) VALUES (1, 1) ON DUPLICATE KEY UPDATE `views` = `views`+1
创建了一个新行 id
= 0:
____________________________________
| | | |
| id | post_id | views |
|__________|_____________|___________|
| | | |
| 0 | 1 | 1 |
| | | |
|__________|_____________|___________|
每当我用一个新的 post_id
:
INSERT INTO post_views (`post_id`, `views`) VALUES (2, 1) ON DUPLICATE KEY UPDATE `views` = `views`+1
同一现有行中的视图增加,新的 post_id
未添加:
____________________________________
| | | |
| id | post_id | views |
|__________|_____________|___________|
| | | |
| 0 | 1 | 2 |
| | | |
|__________|_____________|___________|
1条答案
按热度按时间g6ll5ycj1#
您尚未申报
id
成为auto_increment
. 您的表声明应该如下所示:当你离开房间的时候
id
在insert之外,它将获得一个默认值。与auto_increment
默认值为递增id
.你可能已经指定了
id
是not null
(或primary key
)默认为0
. 这对于所有插入都是正确的,因此所有尝试的插入都具有相同的值。这个auto_increment
应该解决这个问题。