Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Tabelle ohne autoincrement und trotzdem nummeriert? (https://www.delphipraxis.net/67536-tabelle-ohne-autoincrement-und-trotzdem-nummeriert.html)

yankee 16. Apr 2006 10:19

Datenbank: MySQL • Version: 5 • Zugriff über: php

Tabelle ohne autoincrement und trotzdem nummeriert?
 
Nochmal so eine halbtheoretische Frage:

Ich habe festgestellt, dass phpBB ziemlich viele id-Felder nur auf mediumint oder so hat, wo ich mir schon ein paar mal gedacht habe, ob das nicht vielleicht etwas wenig ist.
Dann habe ich noch festgestellt, dass phpBB scheinbar keine autoinkrement-werte benutzt.
Zwischen den beiden Feststellungen versuche ich also eine Verbindung herzustellen und analysieren den phpBB-qt.
nehmen wir mal die forums-Tabelle. kein Autoinkrement:
SQL-Code:
CREATE TABLE phpbb_forums (
   forum_id smallint(5) UNSIGNED NOT NULL,
   cat_id mediumint(8) UNSIGNED NOT NULL,
   forum_name varchar(150),
   ...
   haufenweise Felder
   ...
   PRIMARY KEY (forum_id),
   KEY forums_order (forum_order),
   KEY cat_id (cat_id),
   KEY forum_last_post_id (forum_last_post_id)
);
Und der code, der in diese Tabelle was einfuegt:
Code:
 502              $sql = "INSERT INTO " . CATEGORIES_TABLE . " (cat_title, cat_order)
 503                  VALUES ('" . str_replace("\'", "''", $HTTP_POST_VARS['categoryname']) . "', $next_order)";
Von forum_id ist in diesem query nie die Rede. Trotzdem scheint es ja irgendwie zu funktionieren, dass forumid nachher einen Wert hat.
ich habe mal versucht das nachzubauen und eine Tabelle erstellt, die nur einen int als Primary ohne autoinkrement und noch einen sinnlosen varchar. Dann habe ich versucht 2 Werte einzufuegen. Der erste Wert wurde mit der id 0 eingefuegt und der zweite Wert ergab einen mysql-error.

Ich verstehe das nicht wirklich. Versteht ihr das?

EDIT: Sry, vergesst es!
ich war zu bloed und habe Forum und Kategorien verwechselt...
In Forums schauen die mit MAX einfach nach, welches der Momentan hoechste Wert ist...
Ich frage mich lediglich ob das sinnvoll ist....
Aber gut, wahrscheinlich schon...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz