как получить идентификатор записи, вставленной событием MySQL

Ниже приведен мой код:

$schedule = $this->db->query("CREATE EVENT ".$data['id']." ON SCHEDULE
EVERY 1 MONTH ON COMPLETION PRESERVE ENABLE DO INSERT INTO oops_invoice
(id, prefix, number, bill, account_id, order_delivery_id, date, staff_id,
customer_note, recurrence, status, itp, utp) VALUES ('', '".$data['prefix']."',
'".$data['number']."', '".$data['bill']."', '".$data['account_id']."', NULL,
'".$data['date']."', NULL, '".$data['customer_note']."', '".$data['recurrence']."',
'Draft', '".$data['itp']."', CURRENT_TIMESTAMP)");

$this->db->query("SET GLOBAL event_scheduler =  'ON'");

Я застрял с идентификатором, что, как получить идентификатор строки, вставленной событием MySQL ..

я пробовал следующее, но не работает, когда таблица пуста …

следующий код работает нормально, за исключением одного случая, когда таблица пуста …. в то время он ничего не возвращал, поэтому я застрял …

это не то же самое, как мы вставляем простые данные, это вставляется с использованием события MySQL, так $this->db->insert_id(); не работает……

$last = $this->db->query('SELECT MAX(id) AS `maxid` FROM `oops_invoice`')->row()->maxid;

-1

Решение

Нет необходимости получения идентификатора,
Вы можете начать событие до 1 или 2 минут его создания, как это …
это исключит 2 вставки в таблицу.

CREATE EVENT ".$data['id']." ON SCHEDULE EVERY 1 MONTH STARTS DATE_SUB(NOW(),INTERVAL '0:01' HOUR_MINUTE) ON COMPLETION PRESERVE ENABLE DO INSERT INTO oops_invoice (id, prefix, number, bill, account_id, order_delivery_id, date, staff_id, customer_note, recurrence, status, itp, utp) VALUES ('', '".$data['prefix']."', '".$data['number']."', '".$data['bill']."', '".$data['account_id']."', NULL, '".$data['date']."', NULL, '".$data['customer_note']."', '".$data['recurrence']."', 'Draft', '".$data['itp']."', CURRENT_TIMESTAMP)");
$this->db->query("SET GLOBAL event_scheduler =  'ON'");
1

Другие решения

$this->db->lastInsertId()

должно быть ваше решение

0

По вопросам рекламы [email protected]