• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PRIMARY(...)

Status
Für weitere Antworten geschlossen.

Anonymous

Neues Mitglied
Hallo,

inzwischen kenne ich mich recht gut mit MySQL und SQL aus, aber eine Sache verstehe ich noch nicht.

Diese Sache mit PRIMARY KEY = ID (oder sowas in der Art).

Wozu ist das gut und wie wendet man das an?

Über hilfreiche Antworten würde ich mich sehr freuen.
 
jede tabelle muss eine spalte für einen unverwechselbaren schlüssel um datensätze eindeutig identifizieren zu können. mann setzt ihn beim erstellender tabelle indem man an die liste der spalten nocht PRIMARY(`name_der_spalte`) rannhängst
 
was bringt die eine riesen db wenn du nicht weist wo du was findest? um diese problem zu beheben gibt es die spalte mit dem primärschlüssel dieser muss bei jedem datensatz einmalig sein damit du die möglichkeit hast datensätze sicher und schnell zu finden...
 
meistens zählt da die db automatisch von 1 rauf, ohne dass du was machen musst...
musst einfach als int, 7stellig glaube ich, primary und auto_increment definieren, und du musst nichts mehr machen
 
Wie sähe denn ein typisches Anwendungsbeispiel aus (Erstellen dieser Primary(...) in einer Datenbank und finden eines Eintrags durch diese Primary(...))
 
Code:
CREATE TABLE `news` (
		`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
		`title` VARCHAR(100) DEFAULT '' NOT NULL,
		`message` TEXT DEFAULT '' NOT NULL,
		`message_type` SMALLINT UNSIGNED DEFAULT '0' NOT NULL,
		`date_create` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL,
		`author` INT UNSIGNED DEFAULT '0' NOT NULL,

		PRIMARY KEY (`id`)
		);

So würde das in der Praxis aussehen... (meine news tabelle...)
 
Vielleicht könntest du mir dein Beispiel etwas erläutern Prophet.

Was bedeuten die Angaben hinter `id`?
Wie wird nun jeder Zeile eine eindeutige ID zugewiesen und wie kann man dann eine Spalte durch Erkennung der ID per SQL in PHP aufrufen?
 
dh
BIGINT : grosse zahl, weiss nicht gerade bis wie hoch (int ist ja ne zahl)
NOT NULL : darf nicht null sein, wird aber sowieso nicht, da:
AUTO_INCREMENT : wird automatisch von 1 hochgezählt

also hast du für jeden einen eintrag eine eindeutige nummer
eindeutig ist sie, weil sie nie doppelt vorkommen wird
 
Das heisst, es wird jedem Eintrag eine Zahl zugeordnet nach dem Schema: 1, 2, 3, ... (+1).

Und wie rufe ich dann eine Spalte auf per ID?

Code:
SELECT * FROM `Tabelle` WHERE `id` = 'zahl'

So?
 
ja genau!

deine id kann aber genauso gut ein string oder datum sein aber in der regel ist die id per auto nummerierung am sinnvollsten...
 
du hast da was missverstanden eine spalte speichert die id jeder zeile:

Code:
|ID|Name|EMail|
|--|----|-----|
| 1|AAAA|[email protected]|
| 2|BBBB|[email protected]|
| 3|ABBA|[email protected]|
| 4|ABBA|[email protected]|
| 5|C???|[email protected]|

Die beispiel tabelle hat in Name und in EMail teilweise doppelte einträge um nun aber mit sicherheit einen wählen zu können bzw. den gewollten zu finden nutzt man die erste spalte mit der ID (dem Primary Key).
 
zum thema mysql ist das deutsche handbuch auf mysql.com sehr zu empfelen! das hier alles im forum zu behandeln wuerde z lange dauern ;)
 
Achso Prophet, jetzt verstehe ich es, vielen Dank!

niklasboelter, soviel zu unsinnigen Beiträgen. Es geht hier um ein einziges Problem nicht darum alles von MySQL zu lernen, da ich vieles so oder so schon kann :roll:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben