Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

72
Vistas
Optimising IF-THEN-ELSE in trigger

I have a trigger which needs to make a match on a phone number, so far this works, but it seems rather not optimised:

IF NEW.caller LIKE '44%' THEN
    caller_tmp := SUBSTRING(NEW.caller FROM 3);
    IF caller_tmp ~ '^[0-9]+$' THEN
        NEW.caller_name := (SELECT phonenumber_name FROM phonebook WHERE caller_tmp::BIGINT LIMIT 1);
    END IF;
ELSEIF NEW.caller LIKE '+44%' THEN
    caller_tmp := SUBSTRING(NEW.caller FROM 4);
    IF caller_tmp ~ '^[0-9]+$' THEN
        NEW.caller_name := (SELECT phonenumber_name FROM phonebook WHERE caller_tmp::BIGINT LIMIT 1);
    END IF;
ELSEIF NEW.caller LIKE '0044%' THEN
    caller_tmp := SUBSTRING(NEW.caller FROM 5);
    IF caller_tmp ~ '^[0-9]+$' THEN
        NEW.caller_name := (SELECT phonenumber_name FROM phonebook WHERE caller_tmp::BIGINT LIMIT 1);
    END IF;
END IF;

I need to check if the phone number is from the UK with either containing 44, +44 or 0044 in the front. If it does, I need to check if it's a valid integer, and then do my matching.

Could this be optimised for better perfomance?

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda