сделать ALTER TABLE varchar в TEXT

Lists: pgsql-ru-general
From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: сделать ALTER TABLE varchar в TEXT
Date: 2017-03-23 10:04:34
Message-ID: 20170323100434.GJ7024@vdsl.uvw.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

имеется таблица с 62 млн записей у которой поле VARCHAR(32) NOT NULL

нужно сделать это поле TEXT'ом.

как бы это сделать чтобы не заблокировать БД на 2 часа?
--

. ''`. Dmitry E. Oboukhov
: :’ : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537


From: Николай Кутрухин <haar(at)list(dot)ru>
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>, pgsql-ru-general(at)postgresql(dot)org
Subject: Re: [pgsql-ru-general] сделать ALTER TABLE varchar в TEXT
Date: 2017-03-23 10:11:40
Message-ID: 452208175.20170323131140@list.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

<html><head><title>Re: [pgsql-ru-general] &#1089;&#1076;&#1077;&#1083;&#1072;&#1090;&#1100; ALTER TABLE varchar &#1074; TEXT</title>
</head>
<body>
<span style=" font-family:'Courier New'; font-size: 9pt;">&#1055;&#1088;&#1080;&#1074;&#1077;&#1090;&#1089;&#1090;&#1074;&#1091;&#1102;.<br>
<br>
<br>
<span style=" color: #800000;"><b>&gt; &#1082;&#1072;&#1082; &#1073;&#1099; &#1101;&#1090;&#1086; &#1089;&#1076;&#1077;&#1083;&#1072;&#1090;&#1100; &#1095;&#1090;&#1086;&#1073;&#1099; &#1085;&#1077; &#1079;&#1072;&#1073;&#1083;&#1086;&#1082;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1041;&#1044; &#1085;&#1072; 2 &#1095;&#1072;&#1089;&#1072;?<br>
<br>
</b><span style=" color: #000000;">&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1089;&#1090;&#1086;&#1083;&#1073;&#1077;&#1094;, &#1089;&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;, &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; (&#1087;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1090;&#1100;) &#1089;&#1090;&#1072;&#1088;&#1099;&#1081;, &#1087;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081;. <br>
<br>
<br>
&#1054;&#1090;&#1074;&#1077;&#1090; &#1085;&#1072; &#1087;&#1080;&#1089;&#1100;&#1084;&#1086; &#1086;&#1090; 23 &#1084;&#1072;&#1088;&#1090;&#1072; 2017 &#1075;., 13:04:34:<br>
<br>
<span style=" color: #800000;"><b>&gt; &#1080;&#1084;&#1077;&#1077;&#1090;&#1089;&#1103; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072; &#1089; 62 &#1084;&#1083;&#1085; &#1079;&#1072;&#1087;&#1080;&#1089;&#1077;&#1081; &#1091; &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1081; &#1087;&#1086;&#1083;&#1077; VARCHAR(32) NOT NULL<br>
<br>
&gt; &#1085;&#1091;&#1078;&#1085;&#1086; &#1089;&#1076;&#1077;&#1083;&#1072;&#1090;&#1100; &#1101;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; TEXT'&#1086;&#1084;.<br>
<br>
<br>
&gt; &#1082;&#1072;&#1082; &#1073;&#1099; &#1101;&#1090;&#1086; &#1089;&#1076;&#1077;&#1083;&#1072;&#1090;&#1100; &#1095;&#1090;&#1086;&#1073;&#1099; &#1085;&#1077; &#1079;&#1072;&#1073;&#1083;&#1086;&#1082;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1041;&#1044; &#1085;&#1072; 2 &#1095;&#1072;&#1089;&#1072;?<br>
<br>
<br>
</b><span style=" font-family:'arial'; font-size: 8pt; color: #c0c0c0;"><i>-- <br>
&#1057; &#1091;&#1074;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;&#1084;,<br>
&#1053;&#1080;&#1082;&#1086;&#1083;&#1072;&#1081; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</i></span></span></span></span></span><a style=" font-family:'arial';" href="mailto:haar(at)list(dot)ru">mailto:haar(at)list(dot)ru</a></body></html>

Attachment Content-Type Size
unknown_filename text/html 2.7 KB

From: Dmitry Igrishin <dmitigr(at)gmail(dot)com>
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
Cc: pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org>
Subject: Re: [pgsql-ru-general] сделать ALTER TABLE varchar в TEXT
Date: 2017-03-23 11:15:33
Message-ID: CAAfz9KNCQ-7niZeQ0dtbbjrchAMNsBCXR7+idoZ7Xfv1osu6MA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

23 марта 2017 г., 13:04 пользователь Dmitry E. Oboukhov <unera(at)debian(dot)org>
написал:

> имеется таблица с 62 млн записей у которой поле VARCHAR(32) NOT NULL
>
> нужно сделать это поле TEXT'ом.
>
>
> как бы это сделать чтобы не заблокировать БД на 2 часа?
>
Если речь о PostgreSQL версии 9.1 и новее, то в данном конкретном случае
конверсия VARCHAR(x) -> TEXT не приводит к перезаписи таблицы при ALTER
TABLE ... SET DATA TYPE.
/docs/9.6/static/release-9-1.html