我的mysql数据库中有以下场景。 2桌:
todoitems
todo_sync_controllers
正如您所看到的,从todoitems到todo_sync_controllers存在一对多的关系。
我使用php脚本与服务器通信。每次我从todo项目的设备中获取时,我需要确保该设备和todo项目有一个todo_sync_controller条目。如果它丢失了,就应该创建它。
解决这个问题的一种方法是使用我的php脚本中的循环和多个查询,但我想知道是否可以使用单个INSERT查询来完成此操作?有什么想法吗?
答案 0 :(得分:1)
你的解决方案很简单,只需在你的todo_sync_controllers表中为todo_id和device_id创建唯一键,这样当你从脚本中插入表时,它将检查唯一约束,如果它不存在,将插入数据,否则用mysql忽略查询错误。如果你想检查你的数据是否因重复键而被插入或被忽略,你需要在进行查询时应用if条件,如果它返回true则意味着插入完成,否则系统会忽略。这将像下面的代码一样完成
if(mysql_query($sql_query)){
echo "your data inserted";
}else{
echo "data already exist";
}
并使用
更改您的表格create unique index on todo_sync_controllers (todo_id ,device_id)