# Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist?



## berserkerdq2 (7. Apr 2022)

Hi, habe in Jave eingestellt, dass ich einen Fremdschlüssel in einer Tabelle habe, der jedoch in der anderen Tabelle kein Primärschlüssel ist, ich konnte die Datenbank auch erstellen + anschauen im Nachhinein, welche Konsequenzen hat es jedoch, dass der Fremdschlüssel kein Primärschlüssel in einer anderen Tabelle ist?


----------



## yfons123 (7. Apr 2022)

hol dir nach dem ausführen den error log


prinzipiell is in der db alles sp geregelt 
entweder es funktioniert oder wird zurück gespult

Was doe Möglichkeiten ziemlich einschränkt


----------



## KonradN (7. Apr 2022)

Also bei einem Foreign key sollte der Primary Key in einer anderen Tabelle referenziert werden. Das ist bei diversen Datenbanken auch entsprechend dokumentiert:

Postgresql: https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-foreign-key/


> A foreign key is a column or a group of columns in a table that reference the primary key of another table.



Es gibt Datenbanken, die davon abwchen. MySQL ist so eine Datenbank, die alles mögliche erlaubt (Ist halt eine Frickel Datenbank in meinen Augen:





						MySQL :: MySQL 8.0 Reference Manual :: 13.1.20.5 FOREIGN KEY Constraints
					






					dev.mysql.com
				



Wenn man MxSQL mit InnoDB benutzt, dann reicht sogar ein Indice, bei dem die notwendigen felder am Anfang sind:


> InnoDB permits a foreign key to reference any index column or group of columns. However, in the referenced table, there must be an index where the referenced columns are the _first_ columns in the same order.


Bei MySQL mit NDB muss es ein unique index geben:


> NDB requires an explicit unique key (or primary key) on any column referenced as a foreign key. InnoDB does not, which is an extension of standard SQL.



Ich vermute, Du nutzt mysql?


----------



## yfons123 (7. Apr 2022)

ich würde dir raten dass du dir das tool phpmyadmin holst, wenn du xamp lamp oder so benutzt ist es automatisch dabei musst es nur noch einschalten 
damit kannst du dir im browser dann den aktuellen zustand deiner DB anschauen 

und phpmyadmin ist idioten einfach zu bedienen und viele nutzen es also ist nicht so als ob du ein tool lernst das du nie mehr brauchst sondern das hat dann schon mehrwert..und die oberfläche ist ziemlich schick verglichen mit anderen tools die die gleiche aufgabe erfüllen wollen


----------



## berserkerdq2 (7. Apr 2022)

KonradN hat gesagt.:


> Also bei einem Foreign key sollte der Primary Key in einer anderen Tabelle referenziert werden. Das ist bei diversen Datenbanken auch entsprechend dokumentiert:
> 
> Postgresql: https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-foreign-key/
> 
> ...


Ja haha


----------

