Re: alter column from varchar(32) to varchar(255) without view re-creation
От | Emi Lu |
---|---|
Тема | Re: alter column from varchar(32) to varchar(255) without view re-creation |
Дата | |
Msg-id | 4A0C6405.20609@encs.concordia.ca обсуждение исходный текст |
Ответ на | Re: alter column from varchar(32) to varchar(255) without view re-creation (Emi Lu <emilu@encs.concordia.ca>) |
Список | pgsql-sql |
Emi Lu wrote: >>> PostgreSQL 8.0.15. >>> Is there a way that I can easily alter column type from varchar(32) to >>> varchar(255) but do not have to worry about views dependent on it? > >> You should test it carefully and it is considered a bad practice - >> I'll probably get sued for recommending this :-), but you may try: >> >> SELECT * from pg_attribute where attname = 'colname' and attrelid = >> (SELECT oid FROM pg_class WHERE relname='_tablename'); >> >> UPDATE pg_attribute set atttypmod = 4+_new_length_in_your_case_255 >> where attrelid = _attrelid_from_above_ and attname = 'colname'; Tried this, it worked for table but not view. E.g., ==================================================== T1(col1 varchar(64)... ); create view v1 as select * from T1; update pg_attribute set atttypmod = 4+ 128 where .... \d T1 col1 varchar(128) ============== [OK] \d v1 col1 varchar(64) ============== [did not change?] So, it does not really update all dependencies? Thanks a lot! -- Lu Ying
В списке pgsql-sql по дате отправления: