PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Urutan yang baru ditetapkan tidak berfungsi

Saya pikir masalah Anda adalah Anda mengatur semua ini dengan tangan daripada menggunakan serial kolom. Saat Anda menggunakan serial kolom, PostgreSQL akan membuat urutan, mengatur nilai default yang sesuai, dan memastikan bahwa urutan dimiliki oleh tabel dan kolom yang bersangkutan. Dari manual bagus :

Tapi Anda tidak menggunakan serial atau bigserial jadi pg_get_serial_sequence tidak akan membantu.

Anda dapat memperbaikinya dengan melakukan:

alter sequence new_user_messages_id owned by user_messages.id

Saya tidak yakin apakah ini solusi lengkap dan seseorang (hai Erwin) mungkin akan mengisi bagian yang hilang.

Anda dapat menyelamatkan diri dari beberapa masalah di sini dengan menggunakan serial sebagai tipe data id your Anda kolom. Itu akan membuat dan menghubungkan urutannya untuk Anda.

Misalnya:

=> 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. Bagaimana cara menghapus carriage return dan baris baru di Postgresql?

  2. Pengaturan &Pemeliharaan Replikasi PostgreSQL Menggunakan Ansible

  3. Argumen opsional dalam fungsi PL/pgSQL

  4. Bagaimana cara menambahkan sumber data PostgreSQL ke WildFly 9.0?

  5. Apa jenis Tanggal di npgsql?