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

Bagaimana dan mengapa menambahkan kunci utama ke tabel database SQL saya ketika saya sudah memiliki indeks

Kunci utama adalah batasan yang menetapkan bahwa nilai dalam kolomnya harus (saling) unik dan bukan nol. Ini agar dapat dijamin untuk mengidentifikasi secara unik setiap baris dalam tabel, yang paling berguna ketika ingin membuat kunci asing yang merujuk ke tabel ini. Masih layak dimiliki jika Anda tidak memiliki tabel lain, karena ini akan mencegah tabel Anda masuk ke kondisi buruk di mana, misalnya, Anda memiliki lebih dari satu nilai sumber yang sama pada tanggal tertentu.

Bidang kunci utama hampir selalu memiliki indeks serta sering digunakan untuk pencarian dan GABUNG, tetapi kedua konsep tersebut terpisah.

Beberapa DBMS (misalnya MySQL, SQL Server) secara otomatis membuat indeks berkerumun pada kunci utama, yang berarti bahwa data dalam tabel diurutkan pada disk berdasarkan bidang yang terdiri dari kunci utama untuk membuat operasi umum di atas lebih cepat. Namun, postgres tidak melakukan ini secara default.

Anda dapat menentukan kunci utama pada pembuatan tabel menggunakan sintaks berikut:

create table datatable 
(
    date date, 
    yesterday real, 
    today real, 
    tomorrow real, 
    reading real, 
    source varchar,
    PRIMARY KEY (source, date)
)

Anda juga dapat menambahkan bidang bilangan bulat baru yang bertambah secara otomatis untuk bertindak sebagai kunci utama Anda (umumnya disebut sebagai kunci pengganti atau kunci buatan ). Anda mungkin ingin melakukan ini jika Anda tidak memiliki kandidat bagus lainnya di item data Anda, tetapi ini juga dapat memiliki manfaat lain (misalnya, berpotensi GABUNG lebih cepat).

create table datatable 
(
    id serial primary key,
    date date, 
    yesterday real, 
    today real, 
    tomorrow real, 
    reading real, 
    source varchar
)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. panggil fungsi SQL dalam fungsi R

  2. Berapa banyak ruang disk yang diperlukan untuk menyimpan nilai NULL menggunakan DB postgresql?

  3. Bagaimana cara mengubah nilai default kolom di PostgreSQL?

  4. Bagaimana cara mengatur ulang SUM yang berjalan setelah mencapai ambang batas?

  5. Cara membuat kolom untuk bidang yang berbeda tanpa menerapkan fungsi pivot