Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

(mysql) vragen over ID

Anoniem
yendis
23 antwoorden
  • Hoeveel ID's kunnen er in een mysql databse gemaakt worden ?
    En wat als het einde bereikt is ?

    Is er een mogelijkheid om vrijgekomen ID's te hergebruiken ?
  • Ik weet het niet precies, maar zeker een dik miljoen. Heb namelijk wel eens een forum gezien dat op MySQL draait en meer dan een miljoen leden heet. :)
  • Ik heb namelijk een programma geschreven en kan het waarschijnlijk binnen ons bedrijf uitzetten. Maar dan moet het natuurlijk niet gebeuren dat het over een jaar crasht omdat de ID's op zijn. :wink:
  • Uitgaande van de aanname dat je cijfers gebruikt als id denk ik niet dat je in problemen gaat komen. Overigens heb je het bereik grotendeels in eigen handen door het juiste type te kiezen. Het zal duidelijk zijn dat een SMALLINT minder kan bergen dan een INT… ;)

    [b:5ca5f1c736]Edit:[/b:5ca5f1c736] Vrijgekomen id's kan je uiteraard hergebruiken, afhankelijk van de implementatie die je kiest. Of het nodig/handig is, is een geheel ander punt.

    - Bas
  • Ik heb gezien, dat als ik de database leeg, na zeg 50 berichten, de eerstvolgende id gewoon 51 is en niet 1 zoals verwacht.

    Of leeg ik hem dan verkeerd ?

    [code:1:fc146f41e0]<?php
    include("config.php");

    $db = mysql_connect($server,$user, $w8woord);
    if (!$db)
    {
    die('Kan niet verbinden: ' . mysql_error());
    }

    $result = mysql_select_db($database,$db);
    $result = mysql_query("DELETE FROM verlof");
    mysql_close($db);

    echo ' <html><head><meta http-equiv="refresh" content="3;URL=index.php" /></head><body></body></html>de database is leeggemaakt';
    ?>[/code:1:fc146f41e0]
  • Probeer het eens met Truncate table.
  • Ja dit is volgens mij inderdaad wat ik zoek, om de hele database te resetten. :D

    Maar is er ook iets om alleen de lege ID's te resetten ?
  • Ik zou sowieso NOOIT een id hergebruiken. Doe ik overigens met alle nummeringen (bouwtekeningen bijvoorbeeld). Een mysql database kan miljarden records bevatten, dus zul je echt niet zo snel in de problemen komen.
  • Dat is een hele geruststelling, an laat ik het zo, dankjulliewel! :D
  • "Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows."

    http://dev.mysql.com/doc
    efman/5.0/en/features.html
  • nounou, dat is nou 'o'ok weer overdreven. hahahahahahahahahahahaha

    Scheelt me toch weer een paar nachten wakker liggen.
    Als ze er naar vragen dan verwijs ik ze wel naar jouw link. :wink:
  • Als je database niet al te groot en ingewikkeld is, kun je met sqlite ook een heel eind komen. Zit ingebakken in php, heb je dus geen externe database nodig. Wat het geheel dus lichter en sneller maakt.
  • Het is bedoeld voor 13 filialen, 3 functiegroepen per filiaal. Dus zeg 1300 personen.

    sqllite, ik ben al blij dat ik Mysql snap. :wink:
  • over dat legen van een tabel: mysql blijft gewoon doortellen met ID's. Je kan dit 'resetten' met de volgende query:
    [code:1:940a02cbd7] ALTER TABLE `page` DROP PRIMARY KEY ,
    ADD PRIMARY KEY ( `ID` ( 1 ) ) [/code:1:940a02cbd7] Dit werkt niet als er al een ID = 1 is.
    Als je beschikking hebt tot PHPmyadmin, moet je de tabel selecteren, en dan bij Structuur linksonderaan bij indexen op het potloodje bij ID klikken. Je kunt daar instellen dat Mysql begint bij 1
  • Okee, ik sla dit in ieder geval even op.
  • Het ligt er dus aan welke type int(x) je kiest. Een int(1) is 255 lang.. de formule voor het aantal id's is: 255^x.

    Verder is het verstandig om de id kolommen unsigned te maken. Unsigned betekend dat het getal niet in de min is en kan daardoor dus twee keer zo hoog worden.

    Hier een simpel overzichtje van hoeveel id's je kan opslaan.

    [img:15785f0447]http://img33.picoodle.com/img/img33/4/6/17/f_mysqlm_6746ea7.png[/img:15785f0447]

    Hopelijk heb je er wat aan :)
  • Toch nog even 1 vraag: geef je aan hoeveel variabelen je kunt invoeren, of geef je de grootte van de variabele aan.

    maw: stel dat ik ID int(1) doe, heb ik dan maar 1 invulveld, of kan ik alleen maar een cijfer invoeren, niet groter dan 9 ?
  • als je een ID int(1) doet kan je (zoals in de tabel duidelijk wordt gemaakt) alle getallen tussen 0 en 255 opslaan wanneer je unsigned doet, en -128 tot 127 wanneer je niet unsigned doet.
  • Okee, dankjewel :D
  • ik dacht dat int(1) alleen 0 tot 9 kon, en id(2) van 0 tot 99 kon. Dit is dus niet zo??

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.