Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Foreign Key löschen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von KyunKyun, 17 Juni 2014.

  1. KyunKyun

    KyunKyun Neuer Benutzer

    Hallöchen!

    Jetzt bin ich so verzweifelt, dass ich mich doch mal in einem Forum dafür anmelde...

    Und zwar wollte ich einen Foreign Key aus meiner Child-Tabelle löschen. Hat nach ewigem Hin und Her (angeblich) auch geklappt
    (mit ALTER TABLE Rassen DROP FOREIGN KEY `Rassen_ibfk_1` ; .

    Nun ist es meine Aufgabe von jedem Ergebnis auch einen Screenshot zu machen, daher hab ich die Tabelle mit EXPLAIN table aufgerufen, und dann seh ich, dass in der Key-Spalte aber noch "MUL" drin steht. Das ist doch die Bezeichnung für den Foreign Key...müsste das jetzt nicht eigentlich auch rausgelöscht sein, wenn der Foreign Key gelöscht ist?!

    Das verwirrt mich jetzt doch Ô_o
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Herr, werfe Hirn auf denjenigen, der solche Aufgaben stellt!

    Ein FK besteht, in der technischen Realisierung in MyZettelkasten, aus 2 Teilen:

    • dem Constraint
    • einem Index

    Nötig wäre der Index hier zwar nicht, warum das so gemacht wird ist mir nicht bekannt. Egal. Wenn Du nun den Constraint löscht, bleibt was bestehen? Richtig, MySQL ist hier senil.


    Das ganze funktioniert so, wie Du es erwartest, korrekt in richtigen Datenbanken. Zum Beispiel PostgreSQL:

    Code:
    test=*# create table master (id int primary key);
    CREATE TABLE
    test=*# create table slave (m int references master);
    CREATE TABLE
    test=*# \d slave;
      Table "public.slave"
     Column |  Type  | Modifiers
    --------+---------+-----------
     m  | integer |
    Foreign-key constraints:
      "slave_m_fkey" FOREIGN KEY (m) REFERENCES master(id)
    
    test=*# alter table slave drop constraint slave_m_fkey ;
    ALTER TABLE
    test=*# \d slave
      Table "public.slave"
     Column |  Type  | Modifiers
    --------+---------+-----------
     m  | integer |
    
    
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden