PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Новоприсвоената последователност не работи

Мисля, че проблемът ви е, че настройвате всичко това на ръка, вместо да използвате serial колона. Когато използвате serial колона, PostgreSQL ще създаде последователността, ще настрои подходящата стойност по подразбиране и ще гарантира, че последователността е собственост на въпросната таблица и колона. От фино ръководство :

Но вие не използвате serial или bigserial така че pg_get_serial_sequence няма да помогне.

Можете да поправите това, като направите:

alter sequence new_user_messages_id owned by user_messages.id

Не съм сигурен дали това е пълно решение и някой (здравей Ервин) вероятно ще попълни липсващите части.

Можете да си спестите някои проблеми тук, като използвате serial като тип данни на вашия id колона. Това ще създаде и свърже последователността вместо вас.

Например:

=> create sequence seq_test_id;
=> create table seq_test (id integer not null default nextval('seq_test_id'::regclass));
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
 pg_get_serial_sequence 
------------------------

(1 row)
=> alter sequence seq_test_id owned by seq_test.id;
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
 pg_get_serial_sequence 
------------------------
 public.seq_test_id
(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дайте разрешение на потребител да ПРОМЕНИ функция

  2. Преобразуване на типа. Какво да направя със стойност на PostgreSQL OID в libpq в C?

  3. Заобикаляне на уникалните ограничения на Sequelize в асоциации на belongsToMany

  4. psycopg2 съпоставяне Python:списък на dicts към Postgres:масив от съставен тип за оператор INSERT

  5. Ltree модулът на PostgreSQL подходящ ли е за резбови коментари?