Инструменты пользователя

Инструменты сайта


freepbx_id_trigger

FreePBX добавление поля id в таблицу cdr

Во FreePBX таблица cdr не содержит поля id, и автоикрементом с ключем выступает поле acctid, для добавления id с необходимым значением, надо добавить в бд триггер, который при добавлении данных в таблицу, будет обновлять поле id.

Предварительно сделайте бекап бд, чтобы не потерять данные в случае проблем, после чего на сервере с БД выполните код:

ALTER TABLE `cdr` ADD `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;
 
DELIMITER $$
CREATE TRIGGER `before_insert_cdr` BEFORE INSERT ON `cdr`
 FOR EACH ROW BEGIN
DECLARE newID INT; 
SELECT 
    acctid + 1 INTO newID 
FROM cdr 
ORDER BY acctid DESC 
LIMIT 1;
SET NEW.id = newID;   
END $$
DELIMITER ;
 
UPDATE `cdr` SET `id`=`acctid`
freepbx_id_trigger.txt · Последние изменения: 2023/08/25 17:58 — Евгений Романенко