猿问

为不同的请求生成相同的序列号

我在表中插入一个序列号,该序列号始终递增,但是当多个请求同时到来时,它会为不同的请求插入相同的序列号。我正在使用 mysql 数据库。


我知道我在代码中过早地获取最大序列号,如果请求是同时到来的,那么它将为两者获取相同的序列号。在所有工作完成后更新序列号是个好主意。如果为新请求插入记录并更新前一个请求的序列号是在同一时间呢?


public function add(){

    $session          = $this->request->session();


    $company_id       = $session->read('Admin.company_id');

    $emp_id           = $session->read('Admin.emp_id');

    $user_email_id           = $session->read('Admin.email_id');

    $employee_name           = $session->read('Admin.employee_name');


    $conn = ConnectionManager::get('default');


    if ($this->request->is('post')) {


        try{


                $conn->begin();   

                $department = $this->request->data['department'];

                $data = $this->request->data;


                if(!array_key_exists('is_requisition_for_contractor', $data)){

                    $is_requisition_for_contractor = 0;

                } else {

                    $is_requisition_for_contractor = $data['is_requisition_for_contractor'];

                }


                if(!array_key_exists('is_requisition_for_employee', $data)){

                    $is_requisition_for_employee = 0;

                } else {

                    $is_requisition_for_employee = $data['is_requisition_for_employee'];

                }


                if(!array_key_exists('is_boulder_requisition', $data)){


                    $is_requisition_for_boulder = 0;

                } else {

                    if($data['is_boulder_requisition'] == ''){

                        $is_requisition_for_boulder = 0;

                    } else {

                        $is_requisition_for_boulder = $data['is_boulder_requisition'];

                    }

                }


我期待为每个请求输出不同的序列号。任何优化方法都可以做到这一点。提前致谢。


开满天机
浏览 106回答 2
2回答
随时随地看视频慕课网APP
我要回答