V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cevincheung
V2EX  ›  PostgreSQL

看了一下 Typecho 是这么获取自增 ID 的

  •  
  •   cevincheung · 2015-05-22 00:02:46 +08:00 · 2483 次点击
    这是一个创建于 3474 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?php
    /**
     * 取出最后一次插入返回的主键值
     *
     * @param resource $resource 查询的资源数据
     * @param mixed $handle 连接对象
     * @return integer
     */
     function lastInsertId($resource, $handle)
     {
         /** 查看是否存在序列,可能需要更严格的检查 */
        if ($handle->query('SELECT oid FROM pg_class WHERE relname = ' . $this->quoteValue($this->_lastTable . '_seq'))->fetchAll()) {
            return $handle->lastInsertId($this->_lastTable . '_seq');
        }
        return 0;
    }
    

    虽然returning id是可以直接返回ID,但是不兼容其他数据库(比如MySQL)。
    Typecho在建表的时候把seq就已经规范好规则。获取直接 tablename_seq就行。

    如果抛开这两种方案不说的话,怎么才能最简单、方便的获取自增ID?

    第 1 条附言  ·  2015-09-09 21:03:18 +08:00
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:17 · PVG 04:17 · LAX 12:17 · JFK 15:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.