mySQL -> 2 primärschlüssel in einem fremdschlüssel?

5 Antworten

Man kann mit zusammengesetzten Schlüsseln genauso arbeiten wie mit einfachen, auch die Verwendung als Fremdschlüssel geht. Wenn man nach Datenfelder außerhalb des Primärschlüssels häufig sucht, kann man dafür einen Index definieren. Wenn man einen eindeutigen braucht (muss nicht unbedingt sein) oder haben will, kann man den Primärschlüssel zum Index hinzufügen. Beim Suchen muss man nicht den vollständigen Index angeben, den hinteren Teil kann man weg lassen.

Select S.Name, from rechner r join software s on s.name = r.name

MePuddi 
Fragesteller
 27.07.2011, 08:45

Hmm ... mit JOIN habe ich mich noch nicht beschäftigt ... dient das nur zur Anzeige oder kann man damit auch wirklich konstante Veränderungen vornehmen?

0

Du kannst auf die Tabelle verweisen und musst natürlich auch auf den Primary Key verweisen. Aber du kannst mit Select den Namen der Spate wählen.

Wenn du alle Tabellen verknüpft hast, findet er die Spalten, die du suchst. Da musst du nichts mehr machen...

also wenn ich mich recht erinnere:

Select gewünschte Spalte

From Tabelle a, Tabelle b

weitere Befehle

Kannst du mal bitte den SQL-Code Posten den du schon gemacht hast ?

MePuddi 
Fragesteller
 27.07.2011, 08:48

Der Code lautet etwa so:

create table bla1( id INT(10); name VARCHAR(50), PRIMARY KEY (id));

create table bla2( name VARCHAR(50));

In das Feld "name" von bla2 sollen sowohl ID als auch Name von Tabelle bla1 geschrieben werden.

0

In einer select-Anweisung kannst Du nach allen Datenfeldern suchen, egal ob Primärschlüssel oder nicht. Ist die Tabelle sehr groß oder die Verknüpfungen von mehreren Tabellen erfolgen über solche Felder, kann die Antwort u.U. zu lange dauern. Als Abhilfe kann man auf Datenfelder oder Kombinationen von Datenfeldern, die häufig für Suche und Verknüpfung und Sortierung verwendet werden, einen Index definieren (auf- oder absteigend ggf. getrennt, wenn beide benötigt werden). Der Index muss nicht eindeutig sein (man darf dann nicht unique bei der Definition angeben). Die Definition von Indizes wird meist im Nachhinein durchgeführt, wenn man weiß, welche Abfragen zu lange dauern. Mitunter muss man da auch etwas herumprobieren. Das ist üblich bei einer Datenbankkonzipierung, manche Datenbankhersteller bieten spezielle Software zum Herausfinden von solchen Schwachstellen.