Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: mysql autoincrement maximalwert erreicht

  Alt 3. Mai 2007, 13:39
Einfach mal testen?

SQL-Code:
CREATE TABLE `test` (
  `a` BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `b` INT NOT NULL
) TYPE = MYISAM;

INSERT INTO `test` (`a`, `b`) VALUES (99999999999999999998, 1);
Antwort:
Zitat:
Eingefügte Zeilen: 1
Letzte automatisch eingefügte ID: -1 (die Abfrage dauerte 0.0009 sek)
in Tabelle drin:
Zitat:
a = 9.223.372.036.854.775.807 | b = 2

Status:
Zitat:
Nächste Autoindex = -9.223.372.036.854.776.000

BIGINT(20) würde ja einen 20-Stelligen Integer beteuten, nur kann ein 64-BitInteger nur -9223372036854775808 bis 9223372036854775807 sein.

Also gibt es dann 'nen Umbruch in den ersten negativen Wert.

bei meinem Test wurde der einzufügende Weert vorher halt nur noch in den Wertebereich runtergerundet.


[add]
Also hier müßtest du dann wohl genau sehn, wie mySQL reagiert:
SQL-Code:
CREATE TABLE `test` (
  `a` BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `b` INT NOT NULL
) TYPE = MYISAM;

INSERT INTO `test` (`a`, `b`) VALUES (9223372036854775805, 1);
INSERT INTO `test` (`b`) VALUES (2);
INSERT INTO `test` (`b`) VALUES (3);
INSERT INTO `test` (`b`) VALUES (4);
INSERT INTO `test` (`b`) VALUES (5);
INSERT INTO `test` (`b`) VALUES (6);
INSERT INTO `test` (`b`) VALUES (7);
INSERT INTO `test` (`b`) VALUES (8);
INSERT INTO `test` (`b`) VALUES (9);

[add2]
Bei UNSIGNED sollte er wohl dann nach 18.446.744.073.709.551.615 auf 0 springen.
`a` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
$2B or not $2B
  Mit Zitat antworten Zitat