sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres-funktion til at validere e-mail-adresse

En masse af disse svar er tætte til den rigtige vej. Dette er pointerne for mit indlæg.

  • Du vil bruge et domæne -- IKKE regelsystemet.
  • Du ønsker IKKE at validere disse e-mailadresser med et regex. (Opdatering Mar 2017:ikke rigtig længere)

Jeg viser to metoder til, hvordan man gør dette rigtigt på DBA.StackExchange.com . Både for at tjekke for MX-recorden, og også ved at bruge HTML5-specifikationen. Her er det korte og søde.

CREATE EXTENSION citext;
CREATE DOMAIN email AS citext
  CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$' );

SELECT '[email protected]'::email;
SELECT CAST('[email protected]' AS email);

For mere information jeg high foreslår, at du læser hele svaret . I svaret viser jeg også, hvordan du opretter et DOMAIN over Email::Valid , og forklar hvorfor jeg ikke længere bruger den metode.



  1. SQLite SUM

  2. Underforespørgsel som genereret kolonne i mysql?

  3. Forsøger at migrere lokal mysql-server til AWS

  4. Er der nogen mulighed for at lytte på et sql bord/felt med kamel?