首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以通过自动增量pk获得插入的值吗?

可以通过自动增量pk获得插入的值吗?
EN

Stack Overflow用户
提问于 2012-03-24 01:57:11
回答 3查看 74关注 0票数 0

当向带有自动增量主键列的表中插入行时,是否有一种方法可以获得要分配给该行的值?

为了清楚起见,我希望将此值用作同一行中不同列的字符串的一部分。

执行MAX(id) +1看起来不够健壮。使用LAST_INSERT_ID()执行插入和更新是错误的,因为这是两个单独的db调用。

谢谢

编辑

大家对此有何看法:

代码语言:javascript
复制
INSERT INTO `mydatabase`.`mytable` (`name`, `description`) 
VALUES
  (
    CONCAT(
      'name-',
      CAST(
        (SELECT 
          `auto_increment` + 1 
        FROM
          `information_schema`.`TABLES` 
        WHERE `TABLE_SCHEMA` = 'mydatabase' 
          AND `TABLE_NAME` = 'mytable') AS CHAR
      )
    ),
    'description of this thing'
  ) ;

这样,您应该得到一个id为5的行和一个"name-5“的name。这是一种杂乱无章的方式,但它应该有效,不是吗?

有什么想法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-24 03:16:44

您应该查看SQL命令“显示表状态”。

试一试,谷歌将进一步了解如何从它中提取"auto_increment“值。

票数 1
EN

Stack Overflow用户

发布于 2012-03-24 02:02:39

您不能使用auto_increment字段。相反,您可以手动生成UID (unique primary key)并为此目的使用它。

票数 1
EN

Stack Overflow用户

发布于 2012-03-24 02:03:14

不是很糟吗。如果你没有在外部生成密钥,那就不是。您可以在表上设置一个触发器,使其成为非自动增量,然后自己生成键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9848478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档