当前位置: 首页 > 面试题库 >

将列的数据类型更改为串行

韩季
2023-03-14
问题内容

在pgsql中,有一种方法可以建立一个包含多个值的表,然后选择其中一个值(例如other_id),找出其最大值,并使表中的每个新条目都从该值开始递增。

我想这太容易了,没有机会工作。

ALTER TABLE address ALTER COLUMN new_id TYPE SERIAL

____________________________________ 
ERROR:  type "serial" does not exist

非常感谢您的见解!


问题答案:

快速浏览一下文档会告诉您

数据类型smallserial, serial 和bigserial 不是真实类型, 而只是创建唯一标识符列的符号方便

如果你想使现有的(整数)列作“串行”,只是手动创建序列(任意名称),其当前的值设置为当前的最大(或更大)address.new_id的值,在集作为address.new_id列的默认值。

要设置序列的值,请参见此处。

SELECT setval('address_new_id_seq', 10000);

这只是一个示例,使用您自己的序列名称(任意,您可以创建它),并且其数字大于列的最大当前值。

更新: 正如卢卡斯的答案所指出的那样(应该接受),您还应该使用CREATE/ALTER SEQUENCE ... OWNED BY ...



 类似资料:
  • 问题内容: 我将Pandas’ver 0.12.0’与Python 2.7结合使用,并具有如下数据框: 该系列由一些整数和字符串组成。它在默认情况下是。我想将的所有内容转换为字符串。我试过了,产生下面的输出。 1) 如何将的所有元素转换为String? 2) 我最终将用于为数据帧建立索引。与具有整数索引相比,在数据帧中具有String索引会降低速度吗? 问题答案: 您可以将id的所有元素转换为使用

  • 我最近一直在优化我们的一些Postgres表,尽可能将更复杂的数据类型转换为更简单的数据类型。到目前为止,除了一种情况外,其他情况都相当简单,例如: ALTER TABLE产品ALTER列价格TYPE整数使用price::整数; 对于将文本转换为自定义枚举数据类型,这也非常简单。我刚刚编写了一个PLPGSQL函数,将文本转换为枚举,然后将列转换为:

  • 问题内容: 我有以下数据框: 现在,我想将Vacationdate列的数据类型更改为String,以便数据框也采用这种新类型并覆盖所有条目的数据类型数据。例如写后: Vacationdate的数据类型应被覆盖。 我已经使用过诸如cast,StringType或astype之类的函数,但是我没有成功。你知道怎么做吗? 问题答案: 让我们创建一些虚拟数据: 如果Spark> = 1.5.0,则可以使用

  • 问题内容: 我们需要将某些列的数据类型从int更改为bigint。不幸的是,其中一些表很大,大约有7-10百万行(但不宽)。 Alter表alter列将永远保留在这些表上。有没有更快的方法来实现这一目标? 问题答案: 巧合的是,大约3个小时前,我不得不做一些非常相似的事情。该表是3500万行,它相当宽,并且花了很多时间才能做到这一点: 这就是我最终得到的结果: 这次,这些陈述几乎是即时的。(在速度

  • 问题内容: 我想将表示为列表列表的表转换为。作为一个极其简化的示例: 将列转换为适当类型的最佳方法是什么(在这种情况下,将列2和3转换为浮点数)?有没有一种方法可以在转换为DataFrame时指定类型?还是先创建DataFrame然后遍历各列以更改各列的类型更好?理想情况下,我想以动态方式执行此操作,因为可以有数百个列,并且我不想确切指定哪些列属于哪种类型。我可以保证的是,每一列都包含相同类型的值

  • 字段的datatype可以从Nvarchar更改为int吗?? 这个有效吗??如果不能,可以用其他方法吗??