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
    1. CREATE TABLE example ( spalte BIGINT(20) ZEROFILL );


    2. Fülle diese Spalte mit einem Wert:

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


    3. Gib dir den Inhalt der Spalte aus

    SQL
    1. SELECT spalte FROM example;


    Die Ausgabe sollte in etwa so aussehen:

    Code
    1. 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.