Unterschied BIGINT(20) und BIGINT (was nutzen wenn INT nicht reicht)

  • Hallo,

    ich habe bereits über Google gesucht und mir die MySQL Doku angesehen, aber leider weiß ich nach wie vor nicht, wo der Unterschied liegt, wenn BIGINT(20) oder nur BIGINT angegeben wird.
    BIGINT(20) wird z.B. bei Wordpress für die IDs (Autoincrement) genutzt. Ich frage mich gerade, wie ich Bigint einsetzen sollte, wenn in einer Datenbank für bestimmte IDs INT eventuell irgendwann auch mal nicht ausreichen wird. Was würdet ihr empfehlen bzw. setzt ihr dann ein?

    Vielen Dank

  • Die 20 hat nur Bedeutung für die Ausgabe des gespeicherten Wertes. Schau z.B. mal das an:

    1. Erzeuge eine Tabelle mit einer Spalte die BIGINT(20) als Wert bekommt:

    Code
    CREATE TABLE example ( spalte BIGINT(20) ZEROFILL );

    2. Fülle diese Spalte mit einem Wert:

    SQL
    INSERT INTO example (spalte) VALUES (1234);

    3. Gib dir den Inhalt der Spalte aus

    SQL
    SELECT spalte FROM example;

    Die Ausgabe sollte in etwa so aussehen:

    Code
    00000000000000001234

    Warum? Weil Du unter 1. den Inhalt der Spalte mit Nullen gefüllt hast und danach lediglich einen Wert rein schreibst. Es werden somit 20 Zeichen in der Ausgabe angezeigt - die 20 Zeichen die Du mit (20) angegeben hast.

  • Hi,

    das hatte ich zuerst auch angenommen, aber wenn ich SELECT id FROM user mache, wird z.B. nur die 1 ausgebenen (wie ich es auch wollte). Ich dachte daher, dass die 20 vl. etwas über den Zahlenbereich von Bigint aussagt, dazu habe ich aber wiederrum keine weiteren Infos gefunden.