Sql 创建串行列时抽真空表

Sql 创建串行列时抽真空表,sql,postgresql,vacuum,Sql,Postgresql,Vacuum,我的数据库中有一个非常大的表,我正在尝试为它创建一个串行列。我认为这个问题是在我创建这个序列时复制的,没有空间。首先,我的假设正确吗?第二,有没有一种方法我可以创建一个连续的序列并保持一个真空,或者有没有一种方法我可以创建这个列而不这样做?如果你没有足够的空间来容纳你最大的表的两个副本,那么你将陷入一个痛苦的世界。这是可以做到的,但你会不断地把头撞在墙上 要添加主键,需要添加列以保存键(可为null,没有默认值),添加序列,将列更改为具有从序列中提取的默认值,然后在表上进行多次传递,每次填充另一

我的数据库中有一个非常大的表,我正在尝试为它创建一个串行列。我认为这个问题是在我创建这个序列时复制的,没有空间。首先,我的假设正确吗?第二,有没有一种方法我可以创建一个连续的序列并保持一个真空,或者有没有一种方法我可以创建这个列而不这样做?

如果你没有足够的空间来容纳你最大的表的两个副本,那么你将陷入一个痛苦的世界。这是可以做到的,但你会不断地把头撞在墙上

要添加主键,需要添加列以保存键(可为null,没有默认值),添加序列,将列更改为具有从序列中提取的默认值,然后在表上进行多次传递,每次填充另一个值块,中间使用真空。然后将列更改为NOTNULL,然后将序列设置为该列所拥有


填充数据块的最佳方法取决于表中的其他数据和索引。

如果没有足够的空间容纳最大表的两个副本,那么您将陷入痛苦的境地。这是可以做到的,但你会不断地把头撞在墙上

要添加主键,需要添加列以保存键(可为null,没有默认值),添加序列,将列更改为具有从序列中提取的默认值,然后在表上进行多次传递,每次填充另一个值块,中间使用真空。然后将列更改为NOTNULL,然后将序列设置为该列所拥有


填充数据块的最佳方式取决于表中的其他数据和索引。

必须复制整个表才能添加其他列。否则,在出现问题时无法回滚事务。如果您已经有一个主键,可以为它提供一个默认值,否则您可能需要更多的磁盘空间。发布更多详细信息,也许有人可以为您提供一些解决方案。为了添加其他列,必须复制整个表。否则,在出现问题时无法回滚事务。如果您已经有一个主键,可以为它提供一个默认值,否则您可能需要更多的磁盘空间。发布更多细节,也许有人能为你想出一些解决办法。