Autoincrement Verhalten in MySQL

Immer wieder mal stolpere ich über die Frage wie verhält sich das MySQL Autoincrement bei bereits belegten PK IDs.

CREATE TABLE `testab`
(
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1;

INSERT INTO `testab` (`name`) VALUES (’blub’);

INSERT INTO `testab` (`id`,`name`) VALUES  (9,’9bsdwldub’);

INSERT INTO `testab` (,`name`) VALUES (’blub’); (’2′blub’);

Der letzte insert hat den PK 10 d.h. MySQL (wie auch Oracle) füllt mitnichten Lücken auf!

Ebenso muß mann sich bei MySQL nicht darum scheren ob eine ID schon belegt ist – diese wird dann beim insert übersprungen, das allerdings geht mit Sequenzen wie sie Oracle verwendet natürlich nicht.

Eine Sorge weniger…

Kommentare (1)