AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MySQL: Foreign Key Constraints ermitteln

MySQL: Foreign Key Constraints ermitteln

Offene Frage von "alcaeus"
Ein Thema von alcaeus · begonnen am 1. Dez 2008 · letzter Beitrag vom 2. Dez 2008
Antwort Antwort
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

MySQL: Foreign Key Constraints ermitteln

  Alt 1. Dez 2008, 20:18
Datenbank: MySQL • Version: 5.0 • Zugriff über: PHP-Funktionen
Hallo ihr,

ich wollte in einer Web-Applikation Foreign Key Constraints in der MySQL-Datenbank nutzen. Funktioniert an sich wunderbar, jedoch besteht noch ein kleines Problem. Die Web-Applikation stellt automatisch alle Aenderungen am Code und an der Datenbank in ein Update-Script, welches sich dann schnell auf einzelne Installationen verteilen laesst. Die Indizes selbst kann ich ja ohne weiteres mit
SHOW INDEX FROM <tablename> rausfischen. Allerdings werden Foreign Keys da nicht mit angezeigt.

Eine Suche im Netz hat mich auch nicht wirklich weitergebracht, anscheinend scheint der einzige Weg zu sein, in der information_schema-Datenbank von MySQL selbst rumzusuchen und sich die Constraints selbst rauszusuchen. Da das wohl kaum ne Loesung ist (schliesslich hat nicht jeder User Zugriff auf diese Datenbank), wuerde ich mich gerne nach einer anderen Loesung umsehn.

Kennt jemand ne Moeglichkeit, Foreign Keys fuer eine Tabelle rauszuholen? SHOW CREATE TABLE ist uebrigens auch keine Option, da ich evtl. auch ein Update-Query bauen muss, und ich nicht wirklich Lust hab, das CREATE-Statement auseinanderzuparsen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: MySQL: Foreign Key Constraints ermitteln

  Alt 1. Dez 2008, 21:22
SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: MySQL: Foreign Key Constraints ermitteln

  Alt 1. Dez 2008, 21:38
Moin omata,

soweit war ich auch schon - aber guck dir den Output selbst an:
Code:
Array
(
    [Name] => product_order
    [Engine] => InnoDB
    [Version] => 10
    [Row_format] => Compact
    [Rows] => 0
    [Avg_row_length] => 0
    [Data_length] => 16384
    [Max_data_length] => 0
    [Index_length] => 32768
    [Data_free] => 0
    [Auto_increment] => 1
    [Create_time] => 2008-11-30 17:05:48
    [Update_time] =>
    [Check_time] =>
    [Collation] => utf8_general_ci
    [Checksum] =>
    [Create_options] =>
    [Comment] => InnoDB free: 67584 kB; (`product_category` `product_id`) REFER `test/product`(`c
)
Dass ich das Comment-Feld durchparsen muss, ist eine Sache; dass es dabei auch noch abgeschnitten ist, bringt mich aber auch nicht weiter.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: MySQL: Foreign Key Constraints ermitteln

  Alt 1. Dez 2008, 21:59
Also bei mir ist da nix abgeschnitten im Comment-Feld ... MySQL 4 mit PHP 5.2 auf Windows XP IIS5 ...

Code:
Array
(
    [Name] => assoc
    [Engine] => InnoDB
    [Version] => 9
    [Row_format] => Fixed
    [Rows] => 5
    [Avg_row_length] => 3276
    [Data_length] => 16384
    [Max_data_length] =>
    [Index_length] => 32768
    [Data_free] => 0
    [Auto_increment] =>
    [Create_time] => 2008-01-02 12:07:34
    [Update_time] =>
    [Check_time] =>
    [Collation] => latin1_swedish_ci
    [Checksum] =>
    [Create_options] =>
    [Comment] => InnoDB free: 10240 kB; (`pid`) REFER `db/project`(`id`) ON DELETE CASCADE; (`eid`) REFER `db/employees`(`id`) ON DELETE CASCADE
)
Viele andere Möglichkeiten bleiben dir laut MySQL Manual auch leider nicht ...

P.S.: Also das Comment Feld müsste sich ja astrein parsen lassen. Einfach bei den Semikola (Schreibweise?) String trennen und die einzelnen Teile mit RegEx zerplücken. Ggf. findet sich dazu ja scho fertiger Code im Netz...

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: MySQL: Foreign Key Constraints ermitteln

  Alt 2. Dez 2008, 06:13
Zitat von mirage228:
Also bei mir ist da nix abgeschnitten im Comment-Feld ... MySQL 4 mit PHP 5.2 auf Windows XP IIS5 ...
Strange, bei mir ist es tatsaechlich abgeschnitten, hab grad nochmal geguckt.

Zitat von mirage228:
P.S.: Also das Comment Feld müsste sich ja astrein parsen lassen. Einfach bei den Semikola (Schreibweise?) String trennen und die einzelnen Teile mit RegEx zerplücken. Ggf. findet sich dazu ja scho fertiger Code im Netz...
Das schon - ich erhalte Definitionen aber normalerweise schon zerteilt, ist immer einfacher als erstmal parsen

Ich guck mir das nochmal an, wenn das Comment-Feld nicht abgeschnitten waer, koennt ich damit ja was anfangen, so ists aber ein Problem

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: MySQL: Foreign Key Constraints ermitteln

  Alt 2. Dez 2008, 07:45
Zudem ist die Länge des Comment-Feldes (Bei mir sinds 80 Zeichen) beschränkt; Bei mehreren Foreign-Keys gibt das dann Probleme.
Die einzige (saubere und sichere) Variante scheint echt das information_schema zu sein.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz