【问题标题】:Can I assume that the auto increment field will never be equal to 0?我可以假设自动增量字段永远不会等于 0 吗?
【发布时间】:2014-02-21 13:50:14
【问题描述】:

如果我有这样的代码:

//Returns id or null
$id = $my_db_abstraction_object->getRecord($crits);
if($id)
  do_something();

我可以假设我的记录的 id 不是 0 吗?或者 - 在其他世界中 - 我可以假设默认情况下每个数据库都从 1 开始 AutoIncrement 吗?

【问题讨论】:

  • 默认情况下,每个数据库都没有自动增量功能。您需要具体说明您的目标数据库。
  • 不仅如此,而且不是每个表都会使用整数作为索引或主键。
  • 你冷在那里严格检查null。 if($id === null)if(is_null($id))。如果您的数据库抽象按照您的评论建议返回 null ,至少这会起作用。
  • 已经在这里回答了,我想stackoverflow.com/questions/3470246/…

标签: php database


【解决方案1】:

如果您将字段设置为自动递增,除非您另外指定,否则它将从 1 开始。

【讨论】:

  • 您能否保证在每个已创建、当前存在或将要创建的数据库中都是如此?答案是
  • 如果您创建数据库并将字段设置为自动递增...是的,您可以保证它将为 1,除非您手动设置它。注意我对你这个词的使用。
  • 也许你不明白 OPs 代码的用途。他正在创建一个可以与任何数据访问层一起使用的抽象接口。一些数据库系统甚至没有自动递增键的选项。期间。
  • 点但 OP 询问“我可以假设默认情况下每个数据库都从 1 开始 AutoIncrement 吗?”所以我假设 OP 正在询问具有 AI 选项的数据库系统。
  • 即便如此,您还是添加了一个警告,说他可以假设只要他可以控制将其设置为从 1 开始。在这种情况下,他不会假设任何事情。
猜你喜欢
  • 2014-10-22
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多