Contract_id - это первичный ключ и его автоинкрементное значение
Я использую SQL Server 2014 и codeigniter
при добавлении данных в базу данных я получаю сообщение об ошибке при вставке данных в базу данных. Проблема связана с форматом даты. Я исправил проблему и снова успешно вставил ее в базу данных.
Но проблема в том, что значение автоинкремента (первичный ключ) пропускается, а также меняется следующее значение последовательности. Как мне прекратить пропускать значение автоинкремента, когда я получаю ошибку базы данных во внешнем интерфейсе?
public function save_contract() {
date_default_timezone_set('Asia/Dubai');
//$created_Dt = '2019-07-03';
$created_Dt = date('Y-m-d H:i:s');
$this->db->select('NEXT VALUE FOR contacts_seq as contractid');
$query = $this->db->get();
foreach ($query->result_array() as $row)
{
$contract_number = $row['contractid'];
//echo $contract_number;
}
$data = array(
'Contract_no' => $this->input->post('getcontract_no'). $contract_number,
'status' => "active",
'created_Dt' => $created_Dt
);
$insert_id = 0;
if($this->db->insert("contract", $data)){
$insert_id = $this->db->insert_id();
}
return $contract_number;
}
созданная последовательность
CREATE SEQUENCE contacts_seq AS INT
START WITH 1
INCREMENT BY 1