|  |      1Takamine      2019-06-09 22:25:04 +08:00 via Android emmmmm ……我感觉万恶的存储过程应该可以帮你。(づ ●─● )づ | 
|  |      2chendy      2019-06-09 22:30:19 +08:00  3 取个巧,先批量插入前 n-1 个,最后单独插入最后一个拿 id | 
|      3luckylo      2019-06-09 22:33:00 +08:00 via Android last_insert_id+插入的条数? | 
|      4kj1      2019-06-09 23:01:31 +08:00 via Android c++ Java go  API 都有返回值的,你是问用 SQL 语言查,而不是驱动返回值? SQL 语言无法保证一致性的 | 
|  |      6xnotepad OP @kj1 go 的哪个驱动可以正确返回?我目前用的是 https://github.com/go-sql-driver/mysql,返回的是最小值,我猜应该是采用官方的 last_insert_id() 函数实现的。 而且我要的也是当前会话的 id,不需要全局的。 | 
|      7kj1      2019-06-09 23:22:29 +08:00 via Android golang   lastinsertid+rowsaffected   如果插入 0 条,那么 last inserted+rows affected=0 | 
|      8kj1      2019-06-09 23:25:10 +08:00 via Android if  rowsaffected <= 0  logwarning else lastinsertid+rowsaffected-1 | 
|      9kj1      2019-06-09 23:27:26 +08:00 via Android 如果是 insert on duplicate update 那么各种判断要多很多 | 
|      10CFO      2019-06-09 23:39:46 +08:00 via Android 必须要自增 id 吗 自己生成 id 放进去行不行? | 
|      11gavindexu      2019-06-09 23:41:36 +08:00 via iPhone 靠 timestamp 实现? | 
|      12agostop      2019-06-10 08:59:01 +08:00 jdbc 不行吗?单条是能返回的,多条没试过 | 
|      13agostop      2019-06-10 09:00:08 +08:00 喔,没看到是 go,那不清楚,抱歉 | 
|  |      14xnotepad OP @kj1 这个就和我前面说的一样了。需要自己再操作一步。我是想如果有类似于 postgres 中的 lastval 之类的函数可以直接返回就更好了。 毕竟自己实现还需要考虑步长等问题,比较麻烦。 | 
|      15kj1      2019-06-10 15:05:57 +08:00 via Android @xnotepad 自增功能主要是去重的,dba 装机时一般没有必要将默认步长改为大于 1 吧,自己写几行代码也很快,没有必要希望 MySQL 加个新接口 | 
|      16superalsrk      2019-06-10 15:50:32 +08:00 select table_name, AUTO_INCREMENT from information_schema.tables where table_name="get_max_id"; | 
|  |      18xnotepad OP @superalsrk 你这个实现应该是非线程安全的吧? |