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

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


freepbx_id_trigger

Это старая версия документа.


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

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

ALTER TABLE `cdr` ADD `id` INT NOT NULL DEFAULT '0', ADD INDEX (`id`);
 
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.1504713047.txt.gz · Последние изменения: 2017/09/06 22:50 — komivlad