我有一个SQL表,其中包含用户可以链接到其配置文件的项列表。SQL表如下所示:
Item_Activity_ID Item_ID User_ID Status Date-Added
1 1 1 1 2015-06-08
2 2 2 1 2015-06-08
3 1 1 0 2015-06-09该条目显示用户的id为1的用户两次添加项目id 1,唯一被更改的是日期和状态。我希望这样做,以便在给出INSERT语句时,例如:
INSERT INTO items (Item_ID, User_ID, Status, Date_Added) VALUES ('$x', '$y', 1, CURDATE()) IF EXISTS SOME Item_ID = $x AND User_ID = $y UPDATE items SET Status = 1, Date_Added = CURDATE() WHERE Item_ID = $x AND User_ID = $yItem_Activity_ID是一个auto_incremented主键索引。如何在一次查询中完成这一任务?两个用户可以拥有相同的项,但是不应该重复相同用户id和项id的条目。
发布于 2015-04-21 21:18:30
通常的方法是在db级别设置复合约束。如果使用mysql和phpmyadmin,可以在表结构视图中这样做。
检查这两个字段(我猜“user_id”和“item_id”),然后单击“唯一”按钮。
设置好之后,您只需追加ON DUPLICATE KEY UPDATE status =1, date_added=CURDATE()即可。
它将更新违反您创建的约束的行。
https://stackoverflow.com/questions/29783165
复制相似问题