I slutändan är varje sträng ett giltigt kolumnnamn när den är omgiven av dubbla citattecken (MySQL kanske inte följer den regeln beroende på konfigurationen. Den använder inte dubbla citattecken som identifierande citattecken i standardinstallationen).
Men om du vill vara plattformsoberoende (som de olika DBMS-taggarna antyder), bör du leta efter den minsta gemensamma nämnaren.
PostgreSQL-manualen har en bra definition av detta:
Så du bör kontrollera följande med ett reguljärt uttryck:
- börjar med en bokstav
- innehåller endast tecken (bokstäver) och siffror och ett understreck
Så ett reguljärt uttryck som följande bör täcka detta:
^[a-zA-Z_][a-zA-Z0-9_]*$
Eftersom SQL inte är skiftlägeskänslig (såvida inte dubbla citattecken används) är stora och små bokstäver tillåtna.