1

我正在使用 Matlab-2017b 和 PosgreSQL(通过 ODBC 驱动程序)开展一个项目。在代码中有一些文件需要用数据库表的相应 id 号重命名。

在对序列当前值为 1 的场景进行一些测试时,测试结果显示了这种奇怪的行为。

如果 pgAdmin-4 Gui 用于打开序列属性并在代码执行后将当前值设置为 1,则序列返回 2。

通过 pgAdminGui 更改的序列当前值 新插入元素的 id 为 2

但是,如果运行来自 MATLAB 的以下查询:

ALTER SEQUENCE seq RESTART WITH 1;

然后执行代码,新插入的元素 id 的列为 1。

执行查询后新插入元素的行id

虽然代码已经被处理以正常工作,但仍有一些好奇这背后发生了什么?

4

1 回答 1

2

在第一种情况(PgAdmin)中,您已将当前值设置为 1,因此下一个要获取的值将是 2。

在第二种情况下(重新启动序列),您将下一个值设置为 1,因此下一个要获取的值将是 1。

于 2018-10-15T11:47:03.327 回答