Saya memiliki tabel yang sudah ada bernama Persion
. Dalam tabel ini saya memiliki 5 kolom:
- persionId
- Pname
- PMid
- Deskripsi
- Pamt
Ketika saya membuat tabel ini, saya menetapkan PersionId
dan Pname
sebagai kunci utama .
Saya sekarang ingin memasukkan satu kolom lagi di kunci utama - PMID. Bagaimana saya bisa menulis ALTER
pernyataan untuk melakukan ini? (Saya sudah memiliki 1000 catatan dalam tabel)
personId
di tabel Anda. Ini pada gilirannya berarti jika Anda bergabung dari tabel jenis transaksi (banyak) ke tabel ini hanya dengan kunci ini Anda akan mendapatkan catatan duplikat, yang mengarah ke 'penghitungan ganda' dari catatan transaksi.Jawaban:
jatuhkan batasan dan buat ulang
edit:
Anda dapat menemukan nama kendala dengan menggunakan kueri di bawah ini:
sumber
Saya pikir sesuatu seperti ini seharusnya berhasil
sumber
adalah solusi yang lebih baik karena Anda memiliki kendali atas penamaan primary_key.
Ini lebih baik daripada hanya menggunakan
yang Anda buat nama acak dan dapat menyebabkan masalah saat membuat skrip atau membandingkan database
sumber
Jika Anda menambahkan batasan kunci utama
sebagai contoh:
sumber
Sudah ada kunci utama di tabel Anda. Anda tidak bisa hanya menambahkan kunci utama, jika tidak akan menyebabkan kesalahan. Karena ada satu kunci utama untuk tabel sql.
Pertama, Anda harus melepaskan kunci utama lama Anda.
MySQL:
Akses SQL Server / Oracle / MS:
Kedua, Tambahkan kunci utama.
Akses MySQL / SQL Server / Oracle / MS:
atau yang lebih baik di bawah ini
Ini dapat menetapkan nama kendala oleh pengembang. Lebih mudah menjaga meja.
Saya sedikit bingung ketika saya melihat semua jawaban. Jadi saya meneliti beberapa dokumen untuk menemukan setiap detail. Semoga jawaban ini dapat membantu pemula SQL lainnya.
Referensi: https://www.w3schools.com/sql/sql_primarykey.asp
sumber
Batasan KUNCI UTAMA secara unik mengidentifikasi setiap catatan dalam tabel database. Kunci primer harus mengandung nilai UNIK dan kolom tidak bisa berisi Nilai NULL.
sumber
Necromancing.
Kalau-kalau ada orang yang memiliki skema yang sama baiknya dengan saya ...
Berikut adalah cara melakukannya dengan benar:
Dalam contoh ini, nama tabelnya adalah dbo.T_SYS_Language_Forms, dan nama kolomnya adalah LANG_UID
sumber
Silakan coba ini-
sumber
Coba gunakan kode ini:
sumber
sumber