2016-11-24 7 views
0
  • Ich habe 85 Tabellen in meiner Datenbank (Personal, Zugang, Ausbildung, Benachrichtigungen etc. ...)
  • der Tabelle haben ein Feld alle gängigen Feld staff_id. m Problem, vor unerwünschte Datensätze zu entfernen
  • Gibt es eine Möglichkeit, Datensatz aus 85 Tabellen löschen kann, wo das Personal id = xyz
+0

Sie Ihre Tabellen referenzielle Integrität haben, weil Sie alle Ihre Fremdschlüssel definiert? – Daz

+0

Yup, Alle Tabellen haben referentielle Integrität und alle Tabellen sind über staff_id ... verbunden. – HIR

+1

Wenn Sie richtige Beziehungen zwischen den Tabellen haben, versuchen Sie kaskadieren löschen: https://www.google.co.uk/webhp?sourceid = chrome-instant & ion = 1 & espv = 2 & ie = UTF-8 # q = mysql% 20kaskade% 20delete – ADyson

Antwort

0

Try this ...

//Loop through all tables 
set_time_limit(0); 
$res = mysqli_query($db,"SHOW TABLES"); 

while ($row = mysqli_fetch_row($res)) {  
    $table = $row[0]; 
    //Add created_at column if not exist, else alter the field 
    $response = mysqli_query($db,"DELETE FROM " . $table . " WHERE staff_id = xyz"); 

    if ($response) 
     echo "Data deleted from " . $table; 
} 
-1

meinst du so?

DELETE FROM `entries` WHERE staff_id="spiderman" 
0

Sie können dies tun. Sie müssen alle Tabellen wie folgt verbinden. Hier habe ich mich nur über gegebene Tische angeschlossen. Berücksichtigen Sie auch die Fremdschlüsseleinschränkungen vor dem Löschen von Datensätzen.

DELETE t1, t2, t3, t4 FROM 
    staff as t1 
    INNER JOIN access as t2 on t1.staff_id = t2.staff_id 
    INNER JOIN training as t3 on t1.staff_id=t3.staff_id 
    INNER JOIN notifications as t4 on t1.staff_id=t4.staff_id 
    WHERE t1.staff_id=xyz; 

Falls nicht versuchen, da dies:

$tables = array("staff", "access", "training", "notifications"); 
foreach ($tables as $table) { 
    $query = "DELETE FROM $table WHERE staff_id=xyz"; 
    mysqli_query($db, $query); 
} 
+0

So muss ich t1, t2, t3 ...... bis 85 erstellen und m immer noch neue Tabellen hinzufügen. .. – HIR

+0

Ok. Mach weiter. Viel Glück –

Verwandte Themen