当将 PHP 的lastInsertId()
方法与 PostgreSQL 一起使用时,有必要知道序列的名称。
如果我使用 定义列GENERATED BY DEFAULT AS IDENTITY
,我知道我可以使用类似 的名称来获取序列名称pg_get_serial_sequence('whatever', 'id')
。
是否可以在CREATE TABLE
语句中指定序列名称?
当将 PHP 的lastInsertId()
方法与 PostgreSQL 一起使用时,有必要知道序列的名称。
如果我使用 定义列GENERATED BY DEFAULT AS IDENTITY
,我知道我可以使用类似 的名称来获取序列名称pg_get_serial_sequence('whatever', 'id')
。
是否可以在CREATE TABLE
语句中指定序列名称?
不可以,创建标识列时无法指定序列名称。PostgreSQL 自动选择名称为. 如果该名称已经存在一个关系,它将尝试依此类推,直到找到一个空闲名称。
<tablename>_<columnname>_seq
<tablename>_<columnname>_seq1
如果您不想依赖自动选择的名称,您可以使用 找到序列的名称,并在事后
pg_get_serial_sequence()
使用它来重命名。ALTER SEQUENCE ... RENAME TO ...
那不会破坏任何东西。