Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menambah atribut auto-increment pada medan dalam mysql

Bagaimana untuk menambah atribut auto-increment pada medan dalam mysql

青灯夜游
青灯夜游asal
2021-12-02 10:44:4317006semak imbas

Dalam mysql, anda boleh menambah atribut auto-increment pada medan dengan menambahkan atribut "AUTO_INCREMENT" pada medan. Sintaksnya ialah "ubah nama jadual jadual tambah nama medan lajur jenis data AUTO_INCREMENT;".

Bagaimana untuk menambah atribut auto-increment pada medan dalam mysql

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Mencapai autokenaikan medan dengan menambahkan atribut AUTO_INCREMENT pada medan. Format sintaks adalah seperti berikut:

字段名 数据类型 AUTO_INCREMENT

Secara lalai, nilai awal AUTO_INCREMENT ialah 1. Setiap kali rekod baharu ditambah, nilai medan dinaikkan secara automatik sebanyak 1.

  • Hanya satu medan dalam jadual boleh menggunakan kekangan AUTO_INCREMENT dan medan tersebut mesti mempunyai indeks unik untuk mengelakkan pertindihan nombor siri (iaitu, kunci utama atau sebahagian daripada kunci utama).

  • Medan kekangan AUTO_INCREMENT mesti mempunyai atribut NOT NULL.

  • Medan kekangan AUTO_INCREMENT hanya boleh menjadi jenis integer (TINYINT, SMALLINT, INT, BIGINT, dll.).

  • Nilai maksimum medan kekangan AUTO_INCREMENT dikekang oleh jenis data medan Jika had atas dicapai, AUTO_INCREMENT akan menjadi tidak sah.

Medan autokenaikan biasanya digunakan dalam kunci primer.

Apabila kunci utama ditakrifkan sebagai meningkat sendiri, nilai kunci utama ini tidak lagi memerlukan pengguna untuk memasukkan data, tetapi secara automatik diberikan oleh sistem pangkalan data mengikut definisi. Setiap kali rekod ditambah, kunci utama akan meningkat secara automatik dengan saiz langkah yang sama.

Contoh:

Terdapat jadual data mysql sedia ada Saya ingin menambah medan kenaikan automatik dan menetapkan nilai awal data baharu.

  • Ia sebenarnya tidak rumit, sekadar peringatan.

Jadual ujian

CREATE TABLE `t_abc` (
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Data ujian:

INSERT INTO `t_abc` (`name`)
VALUES
	('mike'),
	('tom'),
	('jack');

Tambah medan autokenaikan dan tetapkan nilai permulaan data baharu

/*增加一个自增主键字段,分两步操作*/

/*首先增加自增字段*/
alter table t_abc add column id int auto_increment primary key;
/*执行完上面这一条,字段增加,但值为空*/

/*执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始*/
alter table t_abc auto_increment=100;

Ubah suai nilai awal data sedia ada

/*如果希望所有的数据都从10001 开始,我们可以这么做*/

alter table t_abc add column id int auto_increment primary key;

/*这里没有指定任何数值,执行完后只为自增字段赋从1开始的初始值,其实隐含的设置当前表自增字段从1开始*/
alter table t_abc auto_increment;

/*将所有数据增加10000*/
update t_abc set id=id+10000;

/* 前面的100 我们是任意指定的,现在我们应该指定数据库中的maxId+1作为下一个数据的起始值*/
set @maxId=1;
select max(id) into @maxId from t_abc; /*表中有3条数据,那么maxId 现在是10003*/
select @maxId+1 from dual; /* 10004 */

alter table t_abc auto_increment=10004; /*这里不能直接引用变量,因此手动挪移过来*/

Sahkan

insert into t_abc(name) values('Marry');
select * from t_abc order by id desc;

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Bagaimana untuk menambah atribut auto-increment pada medan dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn