Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL - Reference angeben ?

Empfohlene Antworten

Veröffentlicht

Hi,

wenn ihr eure Datenbänke erstellt, ordnet ihr dann references zu ?

Also z.b.


create table Produkt ( ProdId int primary key,

Bezeichnung varchar (50) not null,

Preis float not null,

Bestand int not null,

HerstId int,

foreign key (HerstId) [B]references

Hersteller (HerstId));[/B]

Was genau bringt es mir denn, wenn ich die reference angebe, aber in meiner SQL Abfrage eh selbst programmiere, dass er in der Datenbank die HerstId sucht die ich haben will ?

Servus,

Mit der Angabe ermöglichst Du es der Datenbank, die referentielle Integrität zu prüfen. Wenn Du diese Constraints nicht festlegst, könntest Du ja einen FK eintragen, der überhaupt nicht existiert. Dies wird durch den Constraint verhindert.

In meinen Augen sollte man Constraints nutzen, da sie schließlich einen sinnvollen und wichtigen Beitrag leisten, das die Datenbank konsistent bleibt.

Peter

Hi,

duchr die Referenzen kann der Datenbankserver verbindungen zwichen den einzelnen Tabelle schneller herstellen. dadurch wird deine abfrage schneller. das macht sich vor allem bei großen Datenmengen bemerkbar.

Des weiteren verhindert dies das zB aus der refenzierten Tabelle einträge gelöscht werden können sollange noch Einträge mit dem gleichen Key in der referenzierenten Tabelle vorhanden sind. Das heist beim Löschen von daten gibt es weniger Datenmüll der übrig bleibt.

Mit der entsprechenden Option am Server ist es möglich das beim löschen eines Eintrages in der referenzierten Tabelle alle zugehörigen Eintrage aus den referentierenten Tabellen gelöscht wird. dies ist allerdings mit vorsicht zu genießen...

grz ange

zwichen den einzelnen Tabelle schneller herstellen.

Woher hast Du denn das? Eine Verbindung zwischen zwei Tabellen wird über die JOIN-Bedingung angegeben. Anschließend werden diese Spalten gematcht egal ob da ein FK-Constraint dran hängt oder nicht.

dadurch wird deine abfrage schneller. das macht sich vor allem bei großen Datenmengen bemerkbar.

Hmm gibt's da auch ein nachvollziehbares Beispiel?

Dim

ACK. die aussage, dass FOREIGN KEY .. REFERENCES die datenbankperformance verbessern soll, ist niemals und nirgendwo im SQL-standard definiert worden und somit schlicht und ergreifend falsch.

Was genau bringt es mir denn, wenn ich die reference angebe

REFERENCES ist die voraussetzung dafür, verschiedene referentielle operation anzugeben, darunter z.b. ON DELETE CASCADE oder ON DELETE SET NULL. das hängt allerdings vom RDBMS ab, und welchen SQL-standard (99, 03) das RDBMS umsetzt.

s'Amstel

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.