MySQL 中的重叠日期:使用冲突检测插入
问题:
考虑数据库表中的 start_date 和 end_date 列表示特定 acc_id 的可用性。目标是防止用户创建与现有可用性范围重叠的新可用性范围。
问题:
是否可以在单个 MySQL 插入语句中执行此验证?
答案:
不幸的是,仅使用普通 MySQL,无法确保单个插入语句中的日期不重叠。这是因为 MySQL 缺乏对 CHECK 约束的支持,这将允许数据库引擎本身强制执行验证。
选项:
替代数据库选项:
如果您可以考虑使用不同的数据库引擎,PostgreSQL提供对 CHECK 约束的支持,使所需的验证变得简单。
注意:
即使您决定使用替代数据库或在应用程序逻辑中实现验证,始终建议检查插入操作后受影响的行数。这可以帮助检测可能与日期重叠无关的潜在故障。
以上是以下是您文章的一些可能的标题,请记住问答格式和对 MySQL 的关注: 简短和直接: * MySQL 能否防止单次插入统计中的日期重叠的详细内容。更多信息请关注PHP中文网其他相关文章!