sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres-funktion för att validera e-postadress

Ett gäng av dessa svar är nära till rätt väg. Det här är poängen för min inlämning.

  • Du vill använda en domän -- INTE regelsystemet.
  • Du vill INTE validera dessa e-postadresser med ett regex. (Uppdatering mars 2017:inte riktigt sant längre)

Jag visar två metoder för hur man gör detta på DBA.StackExchange.com . Både för att leta efter MX-posten och även använda HTML5-specifikationen. Här är kort och gott.

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);

För mer information jag högt föreslår att du läser svaret i sin helhet . I svaret visar jag också hur du skapar en DOMAIN över Email::Valid , och förklara varför jag inte längre använder den metoden.



  1. Försöker ladda upp användar-id till databasen, Session returnerar användar-id som null?

  2. Docker-bild körs i m1-processor

  3. Konvertera alla kolumner i raderna från datum till tidsstämpel MySQL

  4. PHP mysql fråga döma och inte eka repeart delen