Ao utilizar o método PHP lastInsertId()
com PostgreSQL, é necessário saber o nome da sequência.
Se eu defini a coluna usando GENERATED BY DEFAULT AS IDENTITY
, sei que posso obter o nome da sequência usando algo como pg_get_serial_sequence('whatever', 'id')
.
É possível especificar um nome de sequência na CREATE TABLE
instrução?
Não, não há como especificar o nome da sequência ao criar uma coluna de identidade. O PostgreSQL escolhe o nome automaticamente como . Se já existe uma relação com esse nome, ele tenta e assim por diante até encontrar um nome livre.
<tablename>_<columnname>_seq
<tablename>_<columnname>_seq1
Se não quiser confiar no nome escolhido automaticamente, você pode encontrar o nome da sequência
pg_get_serial_sequence()
e usá-ALTER SEQUENCE ... RENAME TO ...
lo para renomeá-la após o fato. Isso não vai quebrar nada.