Letztendlich ist jeder String ein gültiger Spaltenname, sobald er in doppelte Anführungszeichen eingeschlossen ist (MySQL hält sich je nach Konfiguration möglicherweise nicht an diese Regel. Es verwendet keine doppelten Anführungszeichen als Bezeichner-Anführungszeichen in der Standardinstallation).
Wenn Sie jedoch plattformübergreifend sein möchten (wie die verschiedenen DBMS-Tags andeuten), sollten Sie nach dem kleinsten gemeinsamen Nenner suchen.
Das PostgreSQL-Handbuch hat eine schöne Definition davon:
Sie sollten also Folgendes mit einem regulären Ausdruck überprüfen:
- beginnt mit einem Buchstaben
- enthält nur Zeichen (Buchstaben) und Ziffern und einen Unterstrich
Ein regulärer Ausdruck wie der folgende sollte dies also abdecken:
^[a-zA-Z_][a-zA-Z0-9_]*$
Da SQL nicht zwischen Groß- und Kleinschreibung unterscheidet (es sei denn, es werden doppelte Anführungszeichen verwendet), sind Groß- und Kleinbuchstaben erlaubt.