Atribut Show
Setiap tabel hanya dapat memiliki satu kolom SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+1 atau SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+2). Di beberapa mesin penyimpanan (termasuk InnoDB default), jika kunci terdiri dari beberapa kolom, kolom AUTO_INCREMENT harus menjadi kolom pertama. Mesin penyimpanan yang mengizinkan kolom ditempatkan di tempat lain adalah Aria, MyISAM, MERGE, Spider, TokuDB, BLACKHOLE, FederatedX, dan FederatedCREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO animals (name) VALUES ('dog'),('cat'),('penguin'), ('fox'),('whale'),('ostrich'); SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+ SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+4 adalah alias untuk SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+5 CREATE TABLE t (id SERIAL, c CHAR(1)) ENGINE=InnoDB; SHOW CREATE TABLE t \G *************************** 1. row *************************** Table: t Create Table: CREATE TABLE `t` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `c` char(1) DEFAULT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1_ Mengatur atau Mengubah Nilai Auto_IncrementAnda dapat menggunakan pernyataan SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+6 untuk menetapkan nilai baru ke opsi tabel SELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+7, atau menyetel variabel sistem server untuk mengubah nilai AUTO_INCREMENT berikutnya yang disisipkan oleh sesi saat iniSELECT * FROM animals; +----+---------+ | id | name | +----+---------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | +----+---------+_9 dapat digunakan untuk melihat nilai AUTO_INCREMENT terakhir yang dimasukkan oleh sesi saat iniALTER TABLE animals AUTO_INCREMENT=8; INSERT INTO animals (name) VALUES ('aardvark'); SELECT * FROM animals; +----+-----------+ | id | name | +----+-----------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | | 8 | aardvark | +----+-----------+ SET insert_id=12; INSERT INTO animals (name) VALUES ('gorilla'); SELECT * FROM animals; +----+-----------+ | id | name | +----+-----------+ | 1 | dog | | 2 | cat | | 3 | penguin | | 4 | fox | | 5 | whale | | 6 | ostrich | | 8 | aardvark | | 12 | gorilla | +----+-----------+ InnoDBSampai MariaDB 10. 2. 3, InnoDB menggunakan penghitung kenaikan otomatis yang disimpan di memori. Saat server dimulai ulang, penghitung diinisialisasi ulang ke nilai tertinggi yang digunakan dalam tabel, yang membatalkan efek opsi AUTO_INCREMENT = N apa pun dalam pernyataan tabel Dari MariaDB 10. 2. 4, pembatasan ini telah dicabut dan AUTO_INCREMENT tetap ada Lihat juga Penanganan AUTO_INCREMENT di InnoDB Menetapkan Nilai EksplisitDimungkinkan untuk menentukan nilai untuk kolom Jika nilai baru lebih tinggi dari nilai maksimum saat ini, nilai Contoh berikut menunjukkan perilaku ini CREATE TABLE t (id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY) ENGINE = InnoDB; INSERT INTO t VALUES (NULL); SELECT id FROM t; +----+ | id | +----+ | 1 | +----+ INSERT INTO t VALUES (10); -- higher value SELECT id FROM t; +----+ | id | +----+ | 1 | | 10 | +----+ INSERT INTO t VALUES (2); -- lower value INSERT INTO t VALUES (NULL); -- auto value SELECT id FROM t; +----+ | id | +----+ | 1 | | 2 | | 10 | | 11 | +----+ Mesin penyimpanan ARCHIVE tidak memungkinkan untuk memasukkan nilai yang lebih rendah dari maksimum saat ini Nilai yang hilangKolom AUTO_INCREMENT biasanya memiliki nilai yang hilang. Ini terjadi karena jika sebuah baris dihapus, atau nilai AUTO_INCREMENT diperbarui secara eksplisit, nilai lama tidak akan pernah digunakan kembali. Pernyataan REPLACE juga menghapus satu baris, dan nilainya terbuang sia-sia. Dengan InnoDB, nilai dapat dipesan melalui transaksi; Jadi nilai AUTO_INCREMENT dapat digunakan untuk mengurutkan hasil dalam urutan kronologis, tetapi tidak untuk membuat urutan numerik Untuk membuat master-master atau Galera aman digunakan Bagaimana cara menambahkan kenaikan otomatis ke kunci utama di MySQL?Untuk menambahkan kolom integer AUTO_INCREMENT baru bernama c. UBAH TABEL t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (c); Kami mengindeks c (sebagai PRIMARY KEY ) karena kolom AUTO_INCREMENT harus .
Bisakah kunci utama tidak berupa peningkatan otomatis?Kuncinya bisa berupa PRIMARY KEY (atau bisa berupa indeks non-unik biasa), tetapi apa pun itu harus ada di kolom AUTO_INCREMENT.
Bagaimana saya tahu jika kunci utama saya adalah peningkatan otomatis?Periksa apakah tabel memiliki kunci utama, dan dapatkan dari tabel table_info, menggunakan kueri di bawah. PRAGMA table_info(" 2. Anda dapat melihat hasil yang dikembalikan menggunakan CURSOR , dan hanya memilih yang memiliki nilai kolom "pk" berbeda dari 0, yang menunjukkan bahwa itu adalah Kunci Utama. |