В конечном итоге каждая строка является действительным именем столбца, если она заключена в двойные кавычки (MySQL может не подчиняться этому правилу в зависимости от конфигурации. Он не использует двойные кавычки в качестве кавычек идентификатора при установке по умолчанию).1002 * Однако, если вы хотите быть кроссплатформенным (как предлагают различные теги СУБД), вы должны проверить наименьший общий знаменатель.
В руководстве PostgreSQL есть хорошее определение этого:
Идентификаторы SQL и ключевые слова должны начинаться с буквы (az, но также буквы с диакритическими знаками)и нелатинские буквы) или подчеркивание (_).Последующими символами в идентификаторе или ключевом слове могут быть буквы, символы подчеркивания, цифры (0-9) или знаки доллара ($).Обратите внимание, что знаки доллара не допускаются в идентификаторах в соответствии с буквой стандарта SQL, поэтому их использование может сделать приложения менее переносимыми
Поэтому следует проверить следующее с помощью регулярного выражения:
- начинается с буквы
- содержит только символы (буквы) и цифры, а также подчеркивание
Поэтому регулярное выражение, подобное следующему, должно охватывать это:
^[a-zA-Z_][a-zA-Z0-9_]*$
Поскольку SQL не чувствителен к регистру (если не используются двойные кавычки), допускаются прописные и строчные буквы.