claus: Datensätze / Führende Nullen / Reload

Hallo zusammen,
ich habe 3 Fragen in Zusammenhang mit meiner mysql Datenbank:

1. Warum kann ich in meiner mysql Datenbank nur eine bestimmte Anzahl Datensätze speichern? Nach schätzungsweise 150 Datensätzen akzeptiert die DB keine weiteren Datensätze. Gibt es hierfür eine Config Datei in der ein Limit gesetzt ist oder welche Ursache kommt hierfür in Betracht?

2. Gibt es eine Möglichkeit in einer Tabelle einer mysql DB ein Feld vom Typ Integer zu definieren in das ich Zahlen mit führenden Nullen speichern kann - hier: Telefonnummern mit Vorwahl bsp.: 089123456 ?

3. Ich habe drei DB's: mysql, bestellungen, test; welche Auswirkungen hat ein Reload der DB mysql wenn zeitgleich Anwender mit der DB bestellungen arbeiten.

Viele Grüße und Dank im voraus
Claus

  1. Moin!

    1. Warum kann ich in meiner mysql Datenbank nur eine bestimmte Anzahl Datensätze speichern? Nach schätzungsweise 150 Datensätzen akzeptiert die DB keine weiteren Datensätze. Gibt es hierfür eine Config Datei in der ein Limit gesetzt ist oder welche Ursache kommt hierfür in Betracht?

    Welche Fehlermeldung gibt die DB aus?

    1. Gibt es eine Möglichkeit in einer Tabelle einer mysql DB ein Feld vom Typ Integer zu definieren in das ich Zahlen mit führenden Nullen speichern kann - hier: Telefonnummern mit Vorwahl bsp.: 089123456 ?

    Telefonnummern sind keine Integers, sondern Strings. Denn es kommen in Telefonnummern durchaus auch andere Zeichen als nur Ziffern vor.

    1. Ich habe drei DB's: mysql, bestellungen, test; welche Auswirkungen hat ein Reload der DB mysql wenn zeitgleich Anwender mit der DB bestellungen arbeiten.

    Was ist ein "Reload der DB mysql"? Was soll ich mir darunter vorstellen?

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
    1. Hi

      Telefonnummern sind keine Integers, sondern Strings. Denn es kommen in Telefonnummern durchaus auch andere Zeichen als nur Ziffern vor.

      Genau. Telefonnummern bestehen nur "zufällig" meistens aus Ziffern. Alleine schon daran erkennbar, dass man in den seltensten Fällen in die Verlegenheit gerät, zwei Telefonnummern miteinander multiplizieren zu müssen :-)

      Hans-Peter

    2. Moin!

      Welche Fehlermeldung gibt die DB aus?

      Es wird keine Fehlermeldung ausgegeben; es werden einfach keine weiteren Datensätze gespeichert.

      Telefonnummern sind keine Integers, sondern Strings. Denn es kommen in Telefonnummern durchaus auch andere Zeichen als nur Ziffern vor.

      O.K.

      Was ist ein "Reload der DB mysql"? Was soll ich mir darunter vorstellen?

      Ich setze folgenden Befehl ab, nachdem vorher ein neuer Kunde in der DB mysql - dort in der Tabelle user und host eingetragen wurde:

      system('c:\mysql\bin\mysqladmin reload');

      Warum tue ich das? Damit ich dem neuen Kunden mittels Grant Befehl Privilegien zuweisen kann, dies setzt zuvor obiges Kommando voraus.

      Dank und Gruß
      Claus

      1. Halli

        Welche Fehlermeldung gibt die DB aus?
        Es wird keine Fehlermeldung ausgegeben; es werden einfach keine weiteren Datensätze gespeichert.

        Hast Du eine auto-increment-Spalte vom Typ byte? Dann sollte bei 128 Schluß sein.
        Falls ja: Setze einen geeigneteren Typ für die auto-increment-Spalte ein.

        Telefonnummern sind keine Integers, sondern Strings. Denn es kommen in Telefonnummern durchaus auch andere Zeichen als nur Ziffern vor.
        O.K.

        Richtig, es gibt auch "Vanity Numbers", da wird ein Wort angegeben (darum sind auf den Tasten auch Buchstaben drauf).
        Oder einfach zur Hervorhebung der Unterteilung:
        Beispiel:
        +49 (0)89/123456-789

        cu,
        Robert

        1. Sevus

          Hast Du eine auto-increment-Spalte vom Typ byte? Dann sollte bei 128 Schluß sein.
          Falls ja: Setze einen geeigneteren Typ für die auto-increment-Spalte ein.

          Ja, ich habe folgende auto-increment-Spalte:
          id tinyint(6); welchen Typ nehme ich sinnvollerweise für id ?

          Dank und Gruß
          Claus

          1. Moin!

            Sevus

            Hast Du eine auto-increment-Spalte vom Typ byte? Dann sollte bei 128 Schluß sein.
            Falls ja: Setze einen geeigneteren Typ für die auto-increment-Spalte ein.
            Ja, ich habe folgende auto-increment-Spalte:
            id tinyint(6); welchen Typ nehme ich sinnvollerweise für id ?

            Dann sollte die Datenbank aber wirklich eine Fehlermeldung ausgeben - du holst sie derzeit nur einfach nicht ab.

            Was den Datentyp angeht: TINYINT hat den Bereich von -128 bis 127, ohne Vorzeichen von 0 bis 255. Mehr Datensätze kann man also gar nicht haben als 127 bzw. 255, wenn man diese Spalte als primären auto_increment-Index verwendet.

            Benutze irgendeinen beliebigen, anderen, größeren Integer-Typ. Ich verwende gerne das größte, was MySQL hergibt, dann kriege ich am längsten keine Probleme. Beispielsweise eignet sich "unsigned INT" als Typ für eine ID ganz prima. Ob man unbedingt "BIGINT" verwenden muß, sei mal dahingestellt.

            Also ein typischer Fall von "selber doof", um es mal drastisch auszudrücken.

            - Sven Rautenberg

            --
            "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
      2. Moin!

        Was ist ein "Reload der DB mysql"? Was soll ich mir darunter vorstellen?

        Ich setze folgenden Befehl ab, nachdem vorher ein neuer Kunde in der DB mysql - dort in der Tabelle user und host eingetragen wurde:

        system('c:\mysql\bin\mysqladmin reload');

        Warum tue ich das? Damit ich dem neuen Kunden mittels Grant Befehl Privilegien zuweisen kann, dies setzt zuvor obiges Kommando voraus.

        Das Anlegen, Ändern, Verwalten etc. von Datenbank-Accounts ist eine Aufgabe, die man ausschließlich mit SQL-Befehlen erledigen kann.

        Ich habe typischerweise solche Befehlsfolgen bei MySQL erlebt:

        GRANT irgendwas
        FLUSH PRIVILEGES

        Vor allem die letzte Zeile ist wichtig, weil sie die neuen Rechte überall wirksam werden läßt.

        Ein Neustarten oder Neuladen der Datenbank ist also wirklich unnötig, denn es stört den laufenden Betrieb der Datenbank natürlich.

        - Sven Rautenberg

        --
        "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)