В db PostgreSQL, над которым я работаю, половина таблиц имеет один конкретный столбец, который всегда называется тем же, что и тип varchar (5). Размер стал слишком ограниченным, и я хочу изменить его на varchar (10).Измените тип столбца на несколько таблиц
Количество таблиц в моем конкретном случае на самом деле очень удобно для этого. Но мне было интересно, как можно создать скрипт с запросом для больших dbs. Как правило, это должно быть возможно всего за несколько шагов.
- Определите все таблицы в схеме, затем (?) Фильтр по условию, если присутствует столбец.
- Создание заявления TABLE ALTER для каждой таблицы найдены
У меня есть некоторое представление о том, как написать запрос, который идентифицирует все таблицы в схеме. Но я не знаю, как их фильтровать. И если я не фильтрую их, я предполагаю, что сгенерированные инструкции alter table сломались бы.
Было бы здорово, если бы кто-то мог поделиться своими знаниями об этом.
'select table_name, column_name from information_schema.columns где table_catalog = 'postgres' и table_schema = 'public' и column_name = 'foo''? – Abelisto
Естественно, я заменил 'foo' соответствующим именем столбца. Но этот запрос ничего не возвращает для меня. – vic
ОК, заменил 'postgres' на имя db, что теперь дает мне правильные таблицы. Теперь давайте посмотрим, могу ли я выяснить, как построить инструкцию alter table на основе этого ... – vic