Kohana DB在插入之前的最后插入ID

时间:2014-02-19 12:20:51

标签: mysql kohana-3 kohana-orm

我有一张自动增量ID 的表格。

我必须根据id prior the insert生成序列号我可以找到最高的ID值,但是如果之前有删除,那么

的自动增量

table != max(id)+1

1 个答案:

答案 0 :(得分:0)

将其分解为两个查询。

  1. 运行插入查询以检索ID。

  2. 从检索到的ID中创建序列号。

  3. 使用更新查询将序列值添加到记录中。

  4. 使用ORM模块的示例代码

    $my_table = ORM::factory('Mytable');
    
    $my_table->field1 = 'Value1';
    $my_table->field2 = 'Value2';
    
    $my_table->save(); // inserts record
    
    // Create serials (will obviously be more complex than this)  
    $my_table->serial = $my_table->id;
    
    $my_table->save(); // updates record
    

    使用数据库模块的示例代码

    list($id) = DB::insert('my_table', array('field1','field2'))  
    ->values(array('value1','value2')  
    ->execute();
    
    // Create serials (will obviously be more complex than this)  
    $serial = $id;
    
    DB::update('my_table')  
    ->set(array('serial' => $serial))  
    ->where('id', '=', $id);