Bagaimana cara menetapkan nilai awal dan kenaikan otomatis di MySQL?

288

Bagaimana cara menetapkan nilai awal untuk kolom "id" di tabel MySQL yang dimulai dari 1001?

Saya ingin memasukkan "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";

Tanpa menentukan nilai awal untuk kolom id.

bbtang
sumber

Jawaban:

517

Gunakan ini:

ALTER TABLE users AUTO_INCREMENT=1001;

atau jika Anda belum menambahkan kolom id, tambahkan juga

ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);
Anatoliy
sumber
2
Saya menyadari ini 7 tahun yang lalu, tapi ... Bisakah saya mendapatkan penjelasan tentang bagian jawaban ini? Apa yang ADD INDEXdilakukan di sini? Apakah saya harus menambahkannya dalam pernyataan yang sama dengan idkolom, atau bisakah saya mendefinisikan idkolom di CREATE TABLEblok dan kemudian ADD INDEX(id)?
Michael Hoffmann
2
Heh, waktu berlalu ... Tentu, tentukan dalam CREATE TABLE jika Anda bisa melakukannya. Bagian "ALTER TABLE" yang kedua dari jawaban menyiratkan bahwa Anda telah membuat tabel, dan mungkin sudah digunakan di suatu tempat tanpa indeks yang tepat, yang diperlukan untuk "ALTER TABLE" pertama untuk bekerja sebagaimana dimaksud. Saya harap penjelasan ini membantu.
Anatoliy
Ya, itu membantu. Saya melihat beberapa sampel yang menggunakan pernyataan ini dengan cara yang sama, dan sekarang lebih masuk akal. Terima kasih.
Michael Hoffmann
1
Alasan untuk ADD INDEX adalah karena tanpa itu, jika Anda sudah memiliki kunci utama pada tabel yang ada, Anda akan mendapatkannya there can be only one auto column and it must be defined as a key. Anda memerlukan indeks sehingga akan menjadi kunci MUL.
djsumdog
Saya mencoba ini pada tabel yang baru saja dibuat tanpa menambahkan baris. Tampaknya ini tidak berfungsi kecuali ada setidaknya 1 baris ditambahkan ke tabel terlebih dahulu.
Solomon Closson
54

MySQL - Menyiapkan kunci primer penambahan otomatis yang dimulai pada 1001:

Langkah 1, buat tabel Anda:

create table penguins(
  my_id       int(16) auto_increment, 
  skipper     varchar(4000),
  PRIMARY KEY (my_id)
)

Langkah 2, atur nomor mulai untuk kunci primer kenaikan otomatis:

ALTER TABLE penguins AUTO_INCREMENT=1001;

Langkah 3, masukkan beberapa baris:

insert into penguins (skipper) values("We need more power!");
insert into penguins (skipper) values("Time to fire up");
insert into penguins (skipper) values("kowalski's nuclear reactor.");

Langkah 4, interpretasikan hasilnya:

select * from penguins

cetakan:

'1001', 'We need more power!'
'1002', 'Time to fire up'
'1003', 'kowalski\'s nuclear reactor'
Eric Leschinski
sumber
1
Bagaimana seharusnya saya lakukan jika saya ingin menetapkan id <1000 untuk penguin khusus?
William Hu
1
Anda dapat memasukkan id gratis apa saja, cukup taruh di daftar kolom: insert into penguins (my_id, skipper) values(999, "explicit id");(saat menggunakan 0alih-alih 999nilai kenaikan otomatis akan dimasukkan)
hellcode
32

Meja Kerja MySQL

Jika Anda ingin menghindari penulisan sql, Anda juga dapat melakukannya di MySQL Workbench dengan mengklik kanan pada tabel, pilih "Alter Table ..." di menu.

Ketika tampilan struktur tabel terbuka, buka tab "Opsi" (di bagian bawah tampilan), dan setel bidang "Peningkatan Otomatis" ke nilai nomor penambahan otomatis berikutnya.

Jangan lupa untuk menekan "Terapkan" ketika Anda selesai dengan semua perubahan.

PhpMyAdmin:

Jika Anda menggunakan phpMyAdmin, Anda dapat mengklik tabel di navigasi kiri, buka tab "Operations" dan di bawah Table Options ubah nilai AUTO_INCREMENT dan klik OK.

Bojan Hrnkas
sumber
1
Apakah Anda berbicara tentang phpMyAdmin?
Pacerier
1
Tidak, saya pikir dia berbicara tentang MySQL Workbench.
Saturnian
@ Saturnus, ya Anda benar, maksud saya Workbench. Saya akan mengedit Posting saya untuk mengklarifikasi itu.
Bojan Hrnkas
phpMyAdmin memecahkan masalah autoincrement dalam satu langkah, saya mencoba pergi rute kode dan itu tidak berhasil.
tekagami
11

Pertama, Anda perlu menambahkan kolom untuk kenaikan otomatis

alter table users add column id int(5) NOT NULL AUTO_INCREMENT FIRST

Permintaan ini untuk menambah kolom pada awalnya. Sekarang Anda harus mengatur ulang nilai awal kenaikan otomatis. Jadi gunakan kueri ini

alter table users AUTO_INCREMENT=1001

Sekarang meja Anda dimulai dengan 1001

John
sumber
6

Anda juga bisa mengaturnya dalam create tablepernyataan.

`CREATE TABLE(...) AUTO_INCREMENT=1000`
ospider
sumber
5

Juga, di PHPMyAdmin , Anda dapat memilih tabel dari sisi kiri (daftar tabel) kemudian melakukan ini dengan pergi ke sana.
Tab Operasi-> Opsi Tabel-> AUTO_INCREMENT.

Sekarang, Tetapkan nilai Anda dan kemudian tekan Go di bawah Table Options Bo x.

Mostafa Fallah
sumber
4

Untuk ini, Anda harus menetapkan AUTO_INCREMENTnilai

ALTER TABLE tablename AUTO_INCREMENT = <INITIAL_VALUE>

Contoh

ALTER TABLE tablename AUTO_INCREMENT = 101
Arun Kasyakar
sumber
3

Atau, Jika Anda terlalu malas untuk menulis query SQL. Maka solusi ini adalah untuk Anda. masukkan deskripsi gambar di sini

  1. Buka phpMyAdmin
  2. Pilih Tabel yang diinginkan
  3. Klik pada tab Operations
  4. Tetapkan Nilai awal yang Anda inginkan untuk AUTO_INCREMENT
  5. Selesai ..!
Laxmikant Bhumkar
sumber