MySQL'de başlangıç ​​değeri ve otomatik artış nasıl ayarlanır?


288

1001'den başlayan bir MySQL tablosundaki "id" sütununun başlangıç ​​değerini nasıl ayarlayabilirim?

Bir insert yapmak istiyorum "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";

Kimlik sütunu için başlangıç ​​değerini belirtmeden.

Yanıtlar:


518

Bunu kullan:

ALTER TABLE users AUTO_INCREMENT=1001;

veya daha önce bir kimlik sütunu eklemediyseniz,

ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);

2
Bunun 7 yıl önce olduğunun farkındayım, ama ... Bu cevabın kısımları hakkında bir açıklama alabilir miyim? ADD INDEXBurada ne yapar ? Sütunla aynı ifadeye eklemek zorunda idmıyım yoksa idsütundaki CREATE TABLEblokta tanımlayabilir miyim ve sonra ADD INDEX(id)?
Michael Hoffmann

2
Heh, zaman geçiyor ... Tabii, bunu yapabiliyorsanız, CREATE TABLE'da tanımlayın. Cevabın ikinci "ALTER TABLE" kısmı zaten bir tablo oluşturduğunuzu ve muhtemelen ilk "ALTER TABLE" ın amaçlandığı gibi çalışması için gerekli olan uygun indeks olmadan bir yere konuşlandırıldığını gösterir. Umarım bu açıklama yardımcı olur.
Anatoliy

Evet, bu yardımcı olur. Bu ifadeleri benzer şekilde kullanan bazı örneklere bakıyordum ve şimdi daha anlamlılar. Teşekkür ederim.
Michael Hoffmann

1
ADD INDEX'in nedeni, onsuz, mevcut bir tabloda zaten bir birincil anahtarınız varsa, elde edeceğinizdir there can be only one auto column and it must be defined as a key. Bir MUL anahtarı olması için dizine ihtiyacınız vardır.
djsumdog

Bunu henüz herhangi bir satır eklenmeden oluşturulmuş bir tabloda denedim. İlk olarak tabloya en az 1 satır eklenmedikçe bunun işe yaramadığı görülüyor.
Solomon Closson

54

MySQL - 1001 ile başlayan otomatik artan bir birincil anahtar ayarlayın:

1. Adım, tablonuzu oluşturun:

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

2. Adım, otomatik artış birincil anahtarı için başlangıç ​​numarasını ayarlayın:

ALTER TABLE penguins AUTO_INCREMENT=1001;

3. Adım, bazı satırlar ekleyin:

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.");

Adım 4, çıktıyı yorumlayın:

select * from penguins

baskılar:

'1001', 'We need more power!'
'1002', 'Time to fire up'
'1003', 'kowalski\'s nuclear reactor'

1
Özel penguenler için bir <1000 kimliği ayarlamak istersem nasıl yapmalıyım?
William Hu

1
Herhangi bir boş kimlik ekleyebilirsiniz, sadece sütun listesine yerleştirin: insert into penguins (my_id, skipper) values(999, "explicit id");( otomatik artış değeri 0yerine 999kullanıldığında eklenecektir)
cehennem kodu

32

MySQL Çalışma Tezgahı

Sql yazmaktan kaçınmak istiyorsanız, tabloya sağ tıklayarak MySQL Workbench'te de yapabilirsiniz, menüden "Tabloyu Değiştir ..." seçeneğini seçin.

Tablo yapısı görünümü açıldığında, "Seçenekler" sekmesine gidin (görünümün alt alt tarafında) ve "Otomatik Artım" alanını bir sonraki otomatik artış sayısının değerine ayarlayın.

Tüm değişikliklerle işiniz bittiğinde "Uygula" tuşuna basmayı unutmayın.

PhpMyAdmin:

PhpMyAdmin kullanıyorsanız, sol taraftaki gezinme bölmesinde tabloyu tıklayabilir, "İşlemler" sekmesine gidebilir ve Tablo Seçenekleri altında AUTO_INCREMENT değerini değiştirebilir ve Tamam'ı tıklayabilirsiniz.


1
PhpMyAdmin'den bahsediyor musunuz?
Pacerier

1
Hayır, sanırım MySQL Workbench hakkında konuşuyor.
Satürn

@Saturnian, evet haklısın, Çalışma Tezgahı demek istedim. Bunu açıklığa kavuşturmak için Yazımı düzenleyeceğim.
Bojan Hrnkas

phpMyAdmin bir adımda bir autoincrement sorununu çözdü, kod yolunu gitmeye çalıştım ve çalışmadı.
tekagami

11

Öncelikle otomatik artış için sütun eklemeniz gerekir

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

İlk başta sütun ekleme için bu sorgu. Şimdi otomatik artış başlangıç ​​değerini sıfırlamanız gerekir. Bu sorguyu kullan

alter table users AUTO_INCREMENT=1001

Şimdi tablonuz 1001 ile başladı


6

Bunu create tableifadede de ayarlayabilirsiniz .

`CREATE TABLE(...) AUTO_INCREMENT=1000`

5

Ayrıca, PHPMyAdmin'de , sol taraftan (tablo listesi) tabloyu seçip oraya giderek yapabilirsiniz.
İşlemler Sekmesi-> Tablo Seçenekleri -> AUTO_INCREMENT.

Şimdi, değerlerinizi ayarlayın ve ardından Tablo Seçenekleri Bo x altındaki Go düğmesine basın .


4

Bunun için AUTO_INCREMENTdeğer ayarlamanız gerekir

ALTER TABLE tablename AUTO_INCREMENT = <INITIAL_VALUE>

Misal

ALTER TABLE tablename AUTO_INCREMENT = 101

3

Alternatif olarak, SQL sorgusunu yazmak için çok tembelseniz. O zaman bu çözüm tam size göre. resim açıklamasını buraya girin

  1. PhpMyAdmin'i açın
  2. İstenen Tabloyu Seçin
  3. Tıklamak Operasyon sekmesi
  4. İçin istediğiniz başlangıç ​​değerini ayarlayın AUTO_INCREMENT
  5. Bitti ..!
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.