Heim  >  Artikel  >  Datenbank  >  Wie behebt man den Fehler „Table Specified Twice“ in MySQL-UPDATE-Abfragen?

Wie behebt man den Fehler „Table Specified Twice“ in MySQL-UPDATE-Abfragen?

Susan Sarandon
Susan SarandonOriginal
2024-11-12 06:46:01880Durchsuche

How to Fix

Zweimal angegebene Tabelle: Aktualisierungskonflikt in MySQL lösen

Beim Versuch, eine Tabelle zu aktualisieren, die sowohl als Ziel für die Aktualisierung als auch als separate Tabelle angezeigt wird Wenn Sie eine Datenquelle verwenden, löst MySQL möglicherweise den Fehler aus: „Tabelle ‚table_name‘ wird zweimal angegeben, sowohl als Ziel für ‚UPDATE‘ als auch als separate Quelle für Daten.“ Dieses Problem tritt auf, wenn Sie in Ihrer Abfrage mehrmals auf dieselbe Tabelle verweisen.

Diese Fehlermeldung weist insbesondere darauf hin, dass die Managertabelle sowohl als Zieltabelle für den UPDATE-Vorgang als auch als Datenquelle für die Auswahl verwendet wird Daten aus der Tabelle branch_master. Dieser doppelte Verweis kann MySQL verwirren.

Lösung

Die Lösung besteht darin, die Tabelle in Ihrer Datenquelle in eine abgeleitete Tabelle zu isolieren, bei der es sich um eine temporäre Tabelle handelt, die auf der erstellt wurde fliegen, um die Daten aus der Originaltabelle zu speichern. Auf diese Weise können Sie Unklarheiten in Ihrer Abfrage vermeiden.

Ersetzen Sie die folgende Zeile in Ihrer Abfrage:

FROM manager AS m2

durch:

FROM (select * from manager) AS m2

Dadurch wird eine erstellt abgeleitete Tabelle namens m2, die alle Daten aus der ursprünglichen Manager-Tabelle enthält.

Aktualisierte Abfrage

Hier ist die aktualisierte Abfrage, die den Tabellenkonfliktfehler behebt:

UPDATE manager
SET status = 'Y'
WHERE branch_id IN
(
  select branch_id
  FROM (select * from manager) AS m2
  WHERE (branch_id, year) IN
  (
    SELECT branch_id, year
    FROM branch_master
    WHERE type = 'finance'
  )
);

Durch die Verwendung einer abgeleiteten Tabelle können Sie sicherstellen, dass die Manager-Tabelle nur einmal in Ihrer Abfrage referenziert wird, wodurch verhindert wird, dass MySQL auf den Fehler „Tabelle zweimal angegeben“ stößt.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Table Specified Twice“ in MySQL-UPDATE-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn