Как изменить формат с помощью триггера? - PullRequest
0 голосов
/ 30 января 2019

Здравствуйте, у меня есть вопрос о триггерах.Итак, у меня есть стол под названием Spelers.Есть столбец, который содержит номер телефона.Теперь каждый раз, когда новый спелер добавляется в таблицу, формат номера телефона должен меняться.Например: 070-237893 -> +31 70 237893.

Я должен сделать это с помощью триггера.

Это то, что я получил до сих пор:

DELIMITER //

CREATE TRIGGER
nummer BEFORE  INSERT  
on spelers
FOR each row
BEGIN  



END //
DELIMITER ;

Так что я не знаю, как это сделать. Это код, который мне нужно изменить формат

select concat(replace(left(telefoon,1),'0','+32 '),substring(replace(telefoon,'-',' '),2,10)) as telefoon

Заранее спасибо.

1 Ответ

0 голосов
/ 30 января 2019

Следующий код должен сделать эту работу.InMySQL запускает доступ к данным, вставляемым через псевдотаблица «NEW».В вашем случае все, что нужно сделать, это изменить значение телефонного номера до того, как он будет вставлен.

CREATE TRIGGER nummer 
BEFORE INSERT ON spelers
FOR EACH ROW 
BEGIN
    IF (NEW.telefon IS NOT NULL) THEN
        SET NEW.telefon = 
            concat(replace(left(NEW.telefoon,1),'0','+32 '),substring(replace(NEW.telefoon,'-',' '),2,10));
    END IF
END

PS: если телефон не является пустым полем, вы можете удалить окружающий блок IF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...