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,