Article Directory
MySQLКантип ырааттуулукту түзүү керек?MySQL маалымат базасыАвтоматтык өсүү ырааттуулугун түзүү
MySQL ырааттуулугун колдонуу
MySQL ырааттуулугу бүтүн сандардын жыйындысы: 1, 2, 3, ..., анткени берилиштер таблицасында бир гана талааны автоматтык түрдө көбөйтүүчү негизги ачкыч болушу мүмкүн, эгерде сиз башка талааларды автоматтык түрдө көбөйтүүнү кааласаңыз, MySQL ырааттуулугун колдонуу үчүн колдонсоңуз болот. жетишүү.
Бул бөлүмдө биз MySQL ырааттуулугун кантип колдонууну сүрөттөп беребиз.
AUTO_INCREMENT колдонуңуз
MySQLде ырааттуулукту колдонуунун эң оңой жолу - мамычаларды аныктоо үчүн MySQL AUTO_INCREMENT колдонуу.
Instance
Маалымат таблицасы Insect төмөнкү мисалда түзүлгөн, мында автоматтык өсүш үчүн эч кандай маани көрсөтүлгөн эмес.
mysql > CREATE TABLE昆虫 - > (- > id INT UNSIGNED NOT NULL AUTO_INCREMENT ,- > PRIMARY KEY (id ),- > name VARCHAR (30 )NOT NULL ,#昆虫类型- > 日期DATE NOT NULL ,#收集日期- > origin VARCHAR (30 )NOT NULL #where collected ); 查询OK ,0 行受影响(0.02 秒) mysql > INSERT INTO insects (id ,name ,date ,origin )VALUES - > (NULL ,'housefly' ,'2001-09-10' ,'kitchen' ),- > (NULL ,'millipede' ,'2001-09-10 ' ,'车道' ),- > (NULL ,'grasshopper' ,'2001-09-10' ,'front yard' ); 查询OK , 秒)记录:3 重复:0 警告:0 mysql > 选择* 从昆虫ORDER BY ID ; + ---- + ------------- + ------------ + ------------ + | id | 名字 | 日期 | 起源 | + ---- + ------------- + ------------ + ------------ + | 1 | 家蝇 | 2001 - 09 - 10 | 厨房 | | 2 | 千足虫 | 2001 - 09 - 10 | 车道 | | 3 | 蚱蜢| 2001 - 09 - 10 | 前院| + ---- + ------------- + ------------ + ------------ + 3 行中集(0.00 秒)
AUTO_INCREMENT маанисин алыңыз
MySQL кардарында SQLде LAST_INSERT_ID() функциясын колдонуп, таблицага киргизилген акыркы авто-көбөйтүлгөн тилкенин маанисин ала аласыз.
Тиешелүү функциялар PHP же PERL скриптинде да берилген, таблицага киргизилген акыркы автоматтык өсүү тилкесинин маанисин алуу.
PERL мисалы
AUTO_INCREMENT маанисин алуу үчүн mysql_insertid касиетин колдонуңуз.Мисалдар төмөндөгүдөй:
$ dbh - > do (“INSERT INTO insect(name,date,origin) VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };
PHP мисалы
PHP mysql_insert_id() функциясы аркылуу аткарылган insert SQL операторундагы AUTO_INCREMENT тилкесинин маанисин алат.
mysql_query (“INSERT INTO昆虫(名字,日期,起源) VALUES('moth','2001-09-14','windowsill')“ ,$ conn_id ); $ seq = mysql_insert_id ($ conn_id );
ырааттуулукту калыбына келтирүү
Эгер сиз маалымат таблицасындагы бир нече жазууларды жок кылсаңыз жана калган маалыматтардын AUTO_INCREMENT тилкесин кайра иреттештирүүнү кааласаңыз, аны автоматтык түрдө көбөйтүү тилкесин жок кылып, анан аны кайра кошуу менен кыла аласыз.Бирок, бул операция өтө этият болушу керек.Жок кылуу учурунда жаңы жазуулар кошулуп, маалыматтар чаташып кетиши мүмкүн.Амалдар төмөнкүдөй:
mysql > ALTER TABLE昆虫DROP ID ; mysql > ALTER TABLE昆虫 - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,- > ADD PRIMARY KEY (id );
Ырааттуулуктун баштапкы маанисин коюңуз
Жалпысынан, ырааттуулуктун баштапкы мааниси 1, бирок 100 баштапкы маанисин көрсөтүү керек болсо, анда биз муну төмөнкү билдирүү менен жасай алабыз:
mysql > CREATE TABLE昆虫 - > (- > id INT UNSIGNED NOT NULL AUTO_INCREMENT ,- > PRIMARY KEY (id ),- > name VARCHAR (30 )NOT NULL ,- > date DATE NOT NULL ,- > origin VARCHAR (30 )NOT NULL )engine = innodb auto_increment = 100 charset = utf8 ;
Же таблица ийгиликтүү түзүлгөндөн кийин төмөнкү билдирүүнү да колдонсоңуз болот:
mysql > ALTER TABLE t AUTO_INCREMENT = 100 ;
Hope Chen Weiliang блогу ( https://www.chenweiliang.com/ ) бөлүштү "MySQL ырааттуулукту кантип түзөт? MySQL маалымат базасы, сизге жардам берүү үчүн, өзүн-өзү көбөйтүүчү ырааттуулук билдирүүсүн түзүү.
Бул макаланын шилтемесин бөлүшүүгө кош келиңиз:https://www.chenweiliang.com/cwl-498.html
Акыркы жаңылыктарды алуу үчүн Чен Вейляндын блогунун Telegram каналына кош келиңиз!
📚 Бул колдонмо чоң баалуулуктарды камтыйт, 🌟Бул сейрек кездешүүчү мүмкүнчүлүк, аны өткөрүп жибербеңиз! ⏰⌛💨
Бөлүшүп, жакса лайк!
Сиздин бөлүшүүңүз жана лайктарыңыз биздин үзгүлтүксүз мотивациябыз!