Bagaimana cara mengubah kunci utama di mysql?

Ringkasan. dalam tutorial ini, Anda akan belajar bagaimana menggunakan batasan primary key MySQL untuk membuat primary key untuk sebuah tabel

Show

Pengantar kunci utama MySQL

Kunci utama adalah kolom atau sekumpulan kolom yang secara unik mengidentifikasi setiap baris dalam tabel. Kunci utama mengikuti aturan ini

  • Kunci utama harus berisi nilai unik. Jika kunci utama terdiri dari beberapa kolom, kombinasi nilai dalam kolom ini harus unik
  • Kolom kunci utama tidak boleh memiliki

    CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

    Code language: SQL (Structured Query Language) (sql)
    _1 nilai. Upaya apa pun untuk menyisipkan atau memperbarui

    CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

    Code language: SQL (Structured Query Language) (sql)
    _2 ke kolom kunci utama akan mengakibatkan kesalahan. Perhatikan bahwa MySQL secara implisit menambahkan batasan

    CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

    Code language: SQL (Structured Query Language) (sql)
    3 ke kolom kunci utama
  • Sebuah tabel hanya dapat memiliki satu kunci utama

Bagaimana cara mengubah kunci utama di mysql?
Bagaimana cara mengubah kunci utama di mysql?

Karena MySQL bekerja lebih cepat dengan bilangan bulat, tipe data kolom kunci utama harus berupa bilangan bulat e. g. ,

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
4

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
5. Dan Anda harus memastikan bahwa rentang nilai dari tipe integer untuk kunci utama cukup untuk menyimpan semua kemungkinan baris yang mungkin dimiliki tabel

Kolom kunci utama sering kali memiliki atribut

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
_6 yang secara otomatis menghasilkan bilangan bulat berurutan setiap kali Anda memasukkan baris baru ke dalam tabel

Saat Anda menentukan kunci utama untuk sebuah tabel, MySQL secara otomatis membuat indeks yang disebut

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
7

MySQL CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );Code language: SQL (Structured Query Language) (sql)_8 contoh

Batasan

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
8 memungkinkan Anda menentukan kunci utama tabel saat Anda membuat atau mengubah tabel

1) Tentukan kendala CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );Code language: SQL (Structured Query Language) (sql)_8 di CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) ); (adsbygoogle = window.adsbygoogle || []).push({}); Code language: SQL (Structured Query Language) (sql)1

Biasanya, Anda menentukan kunci utama untuk tabel dalam pernyataan

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
2

Jika primary key memiliki satu kolom, Anda dapat menggunakan batasan

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
8 sebagai batasan kolom

CREATE TABLE table_name( primary_key_column datatype PRIMARY KEY, ... );

Code language: SQL (Structured Query Language) (sql)

Ketika kunci utama memiliki lebih dari satu kolom, Anda harus menggunakan batasan

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
8 sebagai batasan tabel

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)

Dalam sintaks ini, Anda memisahkan kolom di

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
5 dengan koma (,)

Batasan tabel

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
8 dapat digunakan ketika kunci utama memiliki satu kolom

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)

Contoh berikut membuat tabel bernama

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
7 yang kunci utamanya adalah kolom

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
8

CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );

Code language: SQL (Structured Query Language) (sql)

Pernyataan ini membuat tabel

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
_9 yang memiliki batasan

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
8 sebagai batasan tabel

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)

Jika kunci utama terdiri dari beberapa kolom, Anda harus menentukannya di akhir pernyataan

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
1  . Anda meletakkan daftar kolom kunci utama yang dipisahkan koma di dalam tanda kurung mengikuti

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
8  kata kunci

Contoh berikut membuat tabel

CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );

Code language: SQL (Structured Query Language) (sql)
_3 yang kunci utamanya terdiri dari dua kolom.

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
8 dan

CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );

Code language: SQL (Structured Query Language) (sql)
5. Ini mendefinisikan batasan

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
_8 sebagai batasan tabel

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)

Perhatikan bahwa pernyataan tersebut juga menciptakan dua kendala kunci asing

2) Tentukan batasan CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );Code language: SQL (Structured Query Language) (sql)8 menggunakan CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );Code language: SQL (Structured Query Language) (sql)8

Jika tabel, karena alasan tertentu, tidak memiliki kunci utama, Anda dapat menggunakan pernyataan

CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );

Code language: SQL (Structured Query Language) (sql)
9 untuk menambahkan kunci utama ke tabel sebagai berikut

ALTER TABLE table_name ADD PRIMARY KEY(column_list);

Code language: SQL (Structured Query Language) (sql)

Contoh berikut menambahkan kolom

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)
_0 ke primary key

Pertama, buat tabel

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)
_1 tanpa kunci utama

CREATE TABLE pkdemos( id INT, title VARCHAR(255) NOT NULL );

Code language: SQL (Structured Query Language) (sql)

Kedua, tambahkan kunci utama ke tabel

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)
1 menggunakan pernyataan

CREATE TABLE users( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40), password VARCHAR(255), email VARCHAR(255) );

Code language: SQL (Structured Query Language) (sql)
8

ALTER TABLE pkdemos ADD PRIMARY KEY(id);

Code language: SQL (Structured Query Language) (sql)

Jika Anda menambahkan kunci utama ke tabel yang sudah memiliki data. Data dalam kolom, yang akan disertakan dalam kunci utama, harus unik dan bukan NULL

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );Code language: SQL (Structured Query Language) (sql)8 vs. CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );Code language: SQL (Structured Query Language) (sql)5 vs. CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );Code language: SQL (Structured Query Language) (sql)6

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)
6 adalah sinonim untuk

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)
8. Anda menggunakan

CREATE TABLE roles( role_id INT AUTO_INCREMENT, role_name VARCHAR(50), PRIMARY KEY(role_id) );

Code language: SQL (Structured Query Language) (sql)
6 saat ingin membuat indeks untuk kolom atau kumpulan kolom yang bukan merupakan bagian dari kunci utama atau kunci unik

Indeks

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
_0 memastikan bahwa nilai dalam kolom harus unik. Berbeda dengan indeks

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
7, MySQL mengizinkan

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
2 nilai dalam indeks

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
3. Selain itu, sebuah tabel dapat memiliki beberapa indeks ________31______3

Misalkan

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
5 dan

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
6 pengguna di tabel

CREATE TABLE table_name ( primary_key_column datatype, .. , PRIMARY KEY(primary_key_column) );

Code language: SQL (Structured Query Language) (sql)
7 harus unik. Untuk menerapkan aturan ini, Anda dapat menentukan indeks

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
_3 untuk kolom

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
5 dan

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
6 sebagai  pernyataan berikut

Tambahkan indeks 

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
_3 untuk kolom

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
6

ALTER TABLE users ADD UNIQUE INDEX username_unique (username ASC) ;

Code language: SQL (Structured Query Language) (sql)

Tambahkan indeks 

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
_3 untuk kolom

CREATE TABLE user_roles( user_id INT, role_id INT, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) );

Code language: SQL (Structured Query Language) (sql)
5

CREATE TABLE table_name( primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY(column_list) );

Code language: SQL (Structured Query Language) (sql)
0

Dalam tutorial ini, Anda telah mempelajari cara membuat primary key untuk tabel baru atau menambahkan primary key ke tabel yang sudah ada

Apakah mungkin untuk memperbarui kunci utama?

Meskipun tidak ada yang akan mencegah Anda memperbarui kunci utama (kecuali batasan integritas), ini mungkin bukan ide yang baik. Dari segi kinerja. Anda perlu memperbarui semua kunci asing yang mereferensikan kunci yang diperbarui. Pembaruan tunggal dapat menyebabkan pembaruan banyak tabel/baris yang berpotensi

Bagaimana cara mengatur kunci utama di MySQL setelah membuat tabel?

Contoh. Pernyataan berikut membuat tabel "Orang" yang tidak memiliki kolom kunci utama ke dalam definisi tabel. Setelah membuat tabel, jika kita ingin menambahkan kunci utama ke tabel ini, kita perlu mengeksekusi pernyataan ALTER TABLE seperti di bawah ini. mysql> ALTER TABLE Persons ADD PRIMARY KEY(Person_ID);

Bagaimana cara mengubah kunci utama dari satu kolom ke kolom lainnya di MySQL?

Untuk mengubah kunci utama untuk tabel tertentu di MySQL, Anda harus menghapus kunci utama saat ini dan kemudian menambahkan kunci utama baru.