Mysql Frage

Hier kann über alles diskutiert werden, wirklich alles. Betonung liegt auf "diskutiert", das ist also kein Freischein zum Spammen.
(Beitragszähler deaktiviert)
Antworten
Benutzeravatar
Daki
Zauberer der Bergwiesen
Beiträge: 487
Registriert: 16. Jun 2006, 15:11
Wohnort: Hinter den Wasserfällen in Konlir - W6

Mysql Frage

Beitrag von Daki » 26. Jan 2010, 01:06

Moin Community,

hab ne kleine Frage zu mysql zu der google nix ausspuckt (vllt bin ich einfach zu doof zum googlen =( ):

Ich programmiere gerade für nen kleines Schulprojekt ein Frontend, also im Prinzip nen Datenbankmanagmentsystem (DBMS). Jetzt scheitert es an was grundlegendes: Wie kann ich nen Datenbankeintrag eindeutig bestimmten? Ich habe in meiner Tabelle zB 5 komplett gleiche Einträge und will davon einen selektieren, updaten, was auch immer. Keine Spalte in der Tabelle ist ein primary key - ist es dennnoch möglich?

Ich hoffe ihr könnt mir weiterhelfen.

lg Daki
Bild in Freewar Karte umwandeln: http://daki.pytalhost.de/maptool/
Bild

Benutzeravatar
Flummi
Gelbbart-Yeti
Beiträge: 2338
Registriert: 17. Mai 2008, 11:22

Re: Mysql Frage

Beitrag von Flummi » 26. Jan 2010, 07:14

Keine Spalte in der Tabelle ist ein primary key - ist es dennnoch möglich?
Dann erstelle einen... Oo
Alleine schon wegen dem Index.
Nyrea hat geschrieben: 17. Jan 2020, 14:18#BigBugBob

Nils
Teidam
Beiträge: 162
Registriert: 10. Mai 2009, 12:29

Re: Mysql Frage

Beitrag von Nils » 26. Jan 2010, 07:15

meines wissens ist das so nicht möglich. Ich würde einfach eine spalte ID hinzufügen der du mit auto_increment automatisch eine eindeutige ID generieren lässt. Dann kannst du über diese ID zugreifen. Wenn in einer tabelle 5 einträge genau gleich sind ist aber meistens sowieso etwas nict ganz richtig, da man normalerweise redudante darten vermeiden sollte.

Nils

Benutzeravatar
XanSeS
Nachtgonk
Beiträge: 268
Registriert: 15. Apr 2007, 10:27

Re: Mysql Frage

Beitrag von XanSeS » 26. Jan 2010, 13:21

Totaler Schwachsinn natürlich, aber mach dir nichts draus, ich habe schon schlimmeres gesehen ;) :

ALTER TABLE test ADD COLUMN nr INT NOT NULL AUTO_INCREMENT PRIMARY KEY; UPDATE test SET first='aaaaa' WHERE nr=2; ALTER TABLE test DROP COLUMN nr;
---

bwoebi
Administrator
Beiträge: 3438
Registriert: 28. Apr 2008, 19:13

Re: Mysql Frage

Beitrag von bwoebi » 26. Jan 2010, 13:25

lol, ein Index per mysql setzen und dann nach der indizierung löschen?^^

à propos SELECT * FROM test WHERE first='aaaaaa' LIMIT 2,1
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Benutzeravatar
Flummi
Gelbbart-Yeti
Beiträge: 2338
Registriert: 17. Mai 2008, 11:22

Re: Mysql Frage

Beitrag von Flummi » 26. Jan 2010, 13:30

Der Index sollte immer vorhanden sein. Tabellen ohne Index taugen einfach nichts.
Nyrea hat geschrieben: 17. Jan 2020, 14:18#BigBugBob

bwoebi
Administrator
Beiträge: 3438
Registriert: 28. Apr 2008, 19:13

Re: Mysql Frage

Beitrag von bwoebi » 26. Jan 2010, 13:32

Zu dem Schluss bin ich schon ganz am Anfang gekommen: Daki will aber wohl unbedingt einen Index verhindern…

@PfT, was wird nun aus deinem Server?
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Benutzeravatar
Daki
Zauberer der Bergwiesen
Beiträge: 487
Registriert: 16. Jun 2006, 15:11
Wohnort: Hinter den Wasserfällen in Konlir - W6

Re: Mysql Frage

Beitrag von Daki » 26. Jan 2010, 13:32

Naja das Problem ist das DBMS muss alles dynamisch verwalten. Da kann ich mir eben nicht aussuchen, ob die Tabelle ne ID hat oder nicht. Und da dacht ich mir eben, es gibt evtl Tabellen, die keinen unique key und keinen primary key haben. Und wenn dann Einträge doppelt vorkommen kann man sie mit nicht mehr mit where eindeutig ansprechen (da es vllt gleiche Einträge gibt)

Zusammengefasst: Ich kann mir nicht aussuchen, was ich für ne Tabelle verwalte
Bild in Freewar Karte umwandeln: http://daki.pytalhost.de/maptool/
Bild

bwoebi
Administrator
Beiträge: 3438
Registriert: 28. Apr 2008, 19:13

Re: Mysql Frage

Beitrag von bwoebi » 26. Jan 2010, 13:34

Kann man sie denn nicht mit

Code: Alles auswählen

SELECT * FROM test WHERE first='aaaaaa' LIMIT 2,1
sowas verwaltet werden?
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Benutzeravatar
Flummi
Gelbbart-Yeti
Beiträge: 2338
Registriert: 17. Mai 2008, 11:22

Re: Mysql Frage

Beitrag von Flummi » 26. Jan 2010, 13:35

Dann schwirren jede Menge "tote" Einträge in der Datenbank rum... Ist eher suboptimal.
Verwende lieber Textdateien als eine Datenbank ohne Index... Ist sogar schneller. :P

Edit: Du könntest auch einfach eine Fakeid einfügen... Name -> "1-Blah"... Danach irgendwie gehen... ;)
Nyrea hat geschrieben: 17. Jan 2020, 14:18#BigBugBob

Benutzeravatar
Daki
Zauberer der Bergwiesen
Beiträge: 487
Registriert: 16. Jun 2006, 15:11
Wohnort: Hinter den Wasserfällen in Konlir - W6

Re: Mysql Frage

Beitrag von Daki » 26. Jan 2010, 13:37

An LIMIT 2,1 hätte ich da gar nicht gedacht. Ich denke das geht sogar, vorrausgesetzt ich kenne die Position des Datensatzes in der Tabelle (was ja auch zutrifft).
Das ist denk ich die Lösung - vielen, vielen dank :)
Dann schwirren jede Menge "tote" Einträge in der Datenbank rum... Ist eher suboptimal.
Verwende lieber Textdateien als eine Datenbank ohne Index... Ist sogar schneller. :P
Erörter das mal pls ^^
Bild in Freewar Karte umwandeln: http://daki.pytalhost.de/maptool/
Bild

bwoebi
Administrator
Beiträge: 3438
Registriert: 28. Apr 2008, 19:13

Re: Mysql Frage

Beitrag von bwoebi » 26. Jan 2010, 13:45

Daki hat geschrieben:
Dann schwirren jede Menge "tote" Einträge in der Datenbank rum... Ist eher suboptimal.
Verwende lieber Textdateien als eine Datenbank ohne Index... Ist sogar schneller. :P
Erörter das mal pls ^^
Genug des Lobes^^

Ich versteh PfT… in der Hinsicht jedenfalls (solange es nur 2 Einträge gibt und es zweimal der Glaiche ist^)
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste