Saya memiliki database yang sudah ada menggunakan PHP, MySQL dan phpMyAdmin.
Saat pengguna menjadi anggota di situs web saya, saya memerlukan sistem untuk membuat nomor keanggotaan unik untuk mereka menggunakan nomor lima digit. untuk misalnya 83773. Saya rasa ini seperti membuat kata sandi acak kecuali saya hanya menginginkan nomor untuk anggota saya. Nomor ID ini harus unik untuk setiap anggota.
Apakah mungkin bagi saya untuk menetapkan kunci utama ke auto_increment di tabel pengguna saya dan mengaturnya untuk mulai dari 10000 dan kemudian kenaikan otomatis setiap kali anggota mendaftar?
Juga, apakah ada jumlah maksimum nomor ID kunci utama akan naik?
Apakah ini cara yang andal dan aman untuk menggunakan nomor ID kunci utama sebagai nomor keanggotaan?
sumber
Jawaban:
Ada beberapa langkah yang mungkin untuk mengaktifkan penambahan otomatis untuk kolom. Saya kira versi phpMyAdmin 3.5.5 tetapi tidak yakin.
Klik pada Tab Table > Structure > Under Action Klik Primary (set as primary), klik Change pada jendela pop-up, gulir ke kiri dan centang A_I . Pastikan juga Anda telah memilih Tidak Ada untuk Default
sumber
Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Di phpMyAdmin, buka tabel yang dimaksud dan klik tab "Operations". Di sebelah kiri di bawah Opsi Tabel Anda akan diizinkan untuk mengatur nilai AUTO_INCREMENT saat ini.
sumber
Cukup jalankan kueri MySQL sederhana dan setel nomor kenaikan otomatis ke apa pun yang Anda inginkan.
Dalam hal maksimum, sejauh yang saya tahu tidak ada, juga tidak ada cara untuk membatasi jumlah tersebut.
Ini sangat aman, dan praktik umum untuk menetapkan nomor id sebagai kunci utama, int auto incrementing. Ada alternatif seperti menggunakan PHP untuk menghasilkan nomor keanggotaan untuk Anda dalam format tertentu dan kemudian memeriksa nomor tersebut tidak ada sebelum memasukkan, namun bagi saya pribadi saya akan menggunakan nilai auto_inc id primer.
sumber
sumber
Di phpMyAdmin, jika Anda menyiapkan bidang di tabel Anda ke penambahan otomatis, lalu menyisipkan baris dan menetapkan nilai bidang itu ke 10000, itu akan berlanjut dari sana.
sumber
@AmitKB, Prosedur Anda benar. Meskipun kesalahan ini
Galat kueri: # 1075 - Definisi tabel salah; hanya boleh ada satu kolom otomatis dan harus ditentukan sebagai kunci
dapat diselesaikan dengan terlebih dahulu menandai bidang sebagai kunci (menggunakan ikon kunci dengan label utama), kecuali jika Anda memiliki kunci lain maka itu mungkin tidak berfungsi.
sumber
Anda tidak dapat menetapkan nilai maksimum (selain memilih tipe data yang tidak dapat menampung angka besar, tetapi tidak ada yang memiliki batas yang Anda minta). Anda dapat memeriksanya dengan LAST_INSERT_ID () setelah memasukkan untuk mendapatkan id dari anggota yang baru dibuat, dan jika terlalu besar menanganinya dalam kode aplikasi Anda (misalnya, hapus dan tolak anggota).
Mengapa Anda menginginkan batas atas?
sumber
Hal ini karena
wp_terms
,wp_termmeta
danwp_term_taxonomy
meja, yang memiliki semua ID mereka tidak diatur keAUTO_INCREMENT
Untuk melakukan ini, pergi ke phpmyadmin, klik pada database perhatian,
wp_terms
tabel, klik pada Tab struktur, di sisi kanan Anda akan melihat tab bernamaA_I(AUTO_INCREMENT)
, periksa dan simpan (Anda hanya melakukan ini untuk opsi pertama, jikawp_term
Anda hanya melakukannya untukterm_id
).Lakukan hal yang sama untuk
wp_termmeta
danwp_term_taxonomy
itu akan memperbaiki masalah.sumber
(a) Cukup klik pada database Anda, pilih tabel Anda. Klik 'Operasi'. Di bawah bagian 'opsi tabel', ubah nilai AUTO_INCREMENT ke nilai yang Anda inginkan, dalam hal ini: 10000 klik 'Go'. (Lihat gambar terlampir)
(b) Alternatifnya, Anda dapat menjalankan perintah SQL di bawah tab SQL setelah memilih tabel Anda. Cukup ketik 'ALTER TABLE table_name AUTO_INCREMENT = 10000;' lalu klik 'Go'. Itu dia!! SETTING AUTO INCREMENT VALUE gambar (a)
SETTING AUTO INCREMENT VALUE gambar (B)
sumber