PostgreSQL автоматизирует переименование имен столбцов в нижний регистр

0

Я конвертирую базу данных Microsoft Access в PHP/PostgreSQL. Ссылка на все имена в нижнем регистре работает очень хорошо, однако люди, которые создали базы данных Access "APPARENTLY" "ВСЕГДА", "СКАЗЫВАЮТ" "ВСЕ" "ВРЕМЯ" "И" ЭТО "" ЗНАЧИТ "," ИМЕЮ "" К ", PUT "" QUOTES "" AROUND "" ALL "" COLUMN "" NAMES ". Я никогда не использую буквы capitol в именах столбцов, когда-либо в абсолютном.

Как сделать ALTER все имена столбцов, чтобы они имели одинаковые имена, но все строчные буквы?

Нет одинаковых имен/разных случаев (например, нет таких наборов колонок, как "TableName" и "tableName").

  • 0
    Вы можете использовать таблицы information_schema для генерации необходимых операторов ALTER TABLE ... RENAME COLUMN . Однако это может раздражать СУБД, если вам не нравится, что вы делаете это со столбцами, используемыми в индексах, ограничениях, ключах, представлениях и т. Д. Честно, я предлагаю вам просто жить с этим. Это очень незначительная проблема, и не стоит ломать голову над этим.
  • 0
    @BaconBits Ах нет, я не живу с неспособностью другого человека правильно кодировать, и в итоге мой код становится грязным, хотя я согласен с подходом, который вы предложили; Я не думал об этом и попробую.
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

update pg_attribute set attname=lower(attname);

Это гарантирует, что в любой из ваших таблиц нет букв в верхнем регистре. Вы можете захотеть отбросить предложение where там, если есть столбцы, которые законно нуждаются в письме в верхнем регистре.

  • 0
    UPDATE pg_attribute SET attname=lower(attname); Я сохраняю синтаксис в верхнем регистре. Независимо от букв, ваш запрос работал для меня с помощью psql, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню