我有一个非生产数据库中的表,其中有4行。该表用于开发。有2个varchar
列,我想将它们转换为bytea
列。我不关心内容,所以当然可以删除这些列,然后再添加回来。但是当我尝试只更改类型时,变得很困惑:
alter table whatever
alter column col_1 set data type bytea using null,
alter column col_2 set data type bytea using null;
当我尝试这样做时,psql
客户端就会挂起。我的意思是它只是坐在那里没有任何反馈,直到我最终按下^C
并中止它。我已经用一个小测试表试过了,它可以正常工作,但出于某种原因,在真实表上却不起作用(实际上,这个真实表也只是一个“小测试表”)。
using
从句似乎并没有什么区别;我可以将其省略或给出其他值,命令的效果都一样。
我没有收到错误信息,只是什么都没有得到。这是否符合预期?
我使用的是9.1版本的ubuntu 14.10。
varchar
转换为bytea
,会发生什么?会产生错误、有意义的结果还是其他什么呢? - Politank-ZSELECT * FROM pg_locks WHERE relation = whatever::regclass;
更多信息请参见:https://wiki.postgresql.org/wiki/Lock_Monitoring - Erwin Brandstetterint
呢?好吧,我想我本可以在没有考虑的情况下关闭那个打开数据库的服务器。你的解释很有道理,而且很令人愉悦,因为它不奇怪 :) - Pointyint
时运气好,没有并发事务干扰。我怀疑你无法再次复现这种效果。 - Erwin Brandstetter