繁体   English   中英

为什么SCOPE_IDENTITY()返回空值?

[英]Why does SCOPE_IDENTITY() return a null value?

我将id设置为身份主键,但是此代码返回null,并且我不想使用@@IDENTITY

$stmt = $db->prepare("INSERT INTO `question_field`(`q_field_id`, `q_field`)  VALUES ('','software');SELECT SCOPE_IDENTITY() as last_id");
$stmt->execute();
$row=$stmt->fetch();
echo $row['last_id'];

有什么问题?

如果在作用域中任何对identity列的插入语句发生之前调用该函数, SCOPE_IDENTITY()函数将返回空值。”

我假设通过@@IDENTITYSCOPE_IDENTITY()您正在访问Sql Server数据库。

在这种情况下,请注意:

  • 在Sql Server中转义是通过[symbol] ,而不是通过MySql的反引号进行的。
  • 当插入具有IDENTITY列的表时,根本不要为Identity列指定任何值

即,如果IDENTITY q_field_id ,则q_field_id

INSERT INTO [question_field]([q_field])
VALUES ('software');
SELECT SCOPE_IDENTITY() as last_id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM