0

我的 mysql 数据库中有以下场景。2张桌子:

待办事项

  • todo_id
  • todo_title

todo_sync_controllers

  • todo_sync_id
  • 设备ID
  • 应该删除
  • is_deleted
  • todo_id

如您所见,从 todoitems 到 todo_sync_controllers 是一对多的关系。

我使用 php 脚本与服务器通信。每次我从设备中提取待办事项时,我都需要确保该设备和待办事项有一个 todo_sync_controller 条目。如果缺少它,则应创建它。

解决此问题的一种方法是使用我的 php 脚本中的循环和多个查询,但我想知道这是否可以使用单个 INSERT 查询来完成?有任何想法吗?

4

1 回答 1

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)
于 2013-03-23T16:15:03.450 回答