Я конвертирую базу данных Microsoft Access в PHP/PostgreSQL. Ссылка на все имена в нижнем регистре работает очень хорошо, однако люди, которые создали базы данных Access "APPARENTLY" "ВСЕГДА", "СКАЗЫВАЮТ" "ВСЕ" "ВРЕМЯ" "И" ЭТО "" ЗНАЧИТ "," ИМЕЮ "" К ", PUT "" QUOTES "" AROUND "" ALL "" COLUMN "" NAMES ". Я никогда не использую буквы capitol в именах столбцов, когда-либо в абсолютном.
Как сделать ALTER
все имена столбцов, чтобы они имели одинаковые имена, но все строчные буквы?
Нет одинаковых имен/разных случаев (например, нет таких наборов колонок, как "TableName" и "tableName").
update pg_attribute set attname=lower(attname);
Это гарантирует, что в любой из ваших таблиц нет букв в верхнем регистре. Вы можете захотеть отбросить предложение where там, если есть столбцы, которые законно нуждаются в письме в верхнем регистре.
UPDATE pg_attribute SET attname=lower(attname);
Я сохраняю синтаксис в верхнем регистре. Независимо от букв, ваш запрос работал для меня с помощью psql, спасибо!
information_schema
для генерации необходимых операторовALTER TABLE ... RENAME COLUMN
. Однако это может раздражать СУБД, если вам не нравится, что вы делаете это со столбцами, используемыми в индексах, ограничениях, ключах, представлениях и т. Д. Честно, я предлагаю вам просто жить с этим. Это очень незначительная проблема, и не стоит ломать голову над этим.