Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何有效地向postgres中的现有列添加自动递增主键? 问题_Postgresql_Postgresql 9.5 - Fatal编程技术网

Postgresql 如何有效地向postgres中的现有列添加自动递增主键? 问题

Postgresql 如何有效地向postgres中的现有列添加自动递增主键? 问题,postgresql,postgresql-9.5,Postgresql,Postgresql 9.5,我可以在postgres中的空表中向预先存在的列添加一个自动递增的主键,但我想知道是否可以更有效地执行此操作 我所做的 在填充表之前,我需要修改一列以添加一个自动递增的主键。与的答案类似,以下内容也适用(假设该表名为test,且相关列名为col1): 四条线离世界末日还很远。然而,根据这个答案,如果我们添加一列而不是修改一个预先存在的列,这可以在一行中完成: ALTER TABLE test ADD COLUMN col1 SERIAL PRIMARY KEY; 问题: 有没有一种方法可以在一

我可以在postgres中的空表中向预先存在的列添加一个自动递增的主键,但我想知道是否可以更有效地执行此操作

我所做的 在填充表之前,我需要修改一列以添加一个自动递增的主键。与的答案类似,以下内容也适用(假设该表名为
test
,且相关列名为
col1
):

四条线离世界末日还很远。然而,根据这个答案,如果我们添加一列而不是修改一个预先存在的列,这可以在一行中完成:

ALTER TABLE test ADD COLUMN col1 SERIAL PRIMARY KEY;
问题: 有没有一种方法可以在一行中实现这一点,但对于预先存在的列?似乎
SERIAL
仅限于添加一个新列,但我想问一下也无妨。我天真的尝试包括:

  • ALTER TABLE test ALTER col1列串行主键
  • altertable测试添加串行主键(col1)
谢谢


编辑:这篇文章立刻被标记为重复,尽管我读到了这两个问题。我觉得他们都使用了我已经使用过的方法(除非我误解了其中的含义),我的问题是看是否有更有效的方法,特别是在新的专栏创作中。

@a_horse_,没有名字,我觉得这不是几年前的两个问题的翻版-它们基本上使用了我目前使用的相同技术,这不是我的问题所在。你无法将现有专栏改为“序列”只有一行,好吧!如果你想回答这个问题,我很乐意接受。这就是我一直在寻找的,因为我在其他任何地方都找不到它。@horse\u和\u no\u的名字我觉得这不是几年前那两个问题的翻版-它们基本上使用了我目前使用的相同技术,这不是我的问题。你无法将现有的专栏更改为“连载”只有一行,好吧!如果你想回答这个问题,我很乐意接受。这就是我一直在寻找的,因为我在其他任何地方都找不到它。
ALTER TABLE test ADD COLUMN col1 SERIAL PRIMARY KEY;