php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.08.2011, 13:13  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard Update mit einer 2 Tabelle in der Where Bedingung

Hallo Community.
ich habe folgendes Problem.
Ich will eine Tabelle updaten. Aber es sind mehrer Zeilen die betroffen sind.
Nun habe ich alle id, um die es geht in eine View gepackt.
und mit Hilfe dieser vie wollte ich nun die einzelnen Zeilen updaten.
Sieht folgendermaßen aus:
Code:
UPDATE `anlagenVertragstypen` SET vertragstypId=68 WHERE anlagenVertragstypen.id in (select baultranlagid from bauid);
Ich will also die Tabelle anlagen Vertragtypen ändern und den Wert der vertragstypId auf 86 setzten. und in der Where suche ich mir die einzelnen Zeilen.
Leider bekomme ich einen fehler geworfen.
#1443 - The definition of table 'bauid' prevents operation UPDATE on table 'anlagenVertragstypen'.

Kann mir da einer weiter helfen?
__________________
Sermon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.08.2011, 13:42  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Das wird an deiner VIEW liegen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 12.08.2011, 13:43  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

jau _ wollt ich auch gerade schreiben - lös es bitte mit einem Sub-Select auf die gleiche Tabelle ...
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 17.08.2011, 16:07  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Auch probiert. Klappt nicht. Folgender Fehler:
#1093 - You can't specify target table 'kv1' for update in FROM clause
Hier der code:
Zitat:
UPDATE kundendaten.anlagenVertragstypen kv1
SET kv1.vertragstypId = 68
WHERE kv1.baultranlagid =
(select kv2.baultranlagid
from anlagen.anlagen aa,
kundendaten.kunden_anlagen ka,
kundendaten.anlagenVertragstypen kv2
where aa.region = 26
and aa.id = ka.anlagenid
and ka.id = kv2.baultranlagid);
__________________
Sermon ist offline   Mit Zitat antworten
Alt 17.08.2011, 16:20  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ein View ist für gewöhnlich read-only... nur in Ausnahmefällen, wenn die Datenbank eine eindeutige Beziehung zwischen den View-Spalten und physisch existenten Tabellen und Felder herstellen kann, ist es möglich einen View upzudaten.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 17.08.2011, 17:01  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

http://dev.mysql.com/doc/refman/5.1/en/update.html
Zitat:
Currently, you cannot update a table and select from the same table in a subquery.
Daran irgendwas missverständlich?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.08.2011, 06:59  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Ich will ja auch nicht die View updaten, sondern benutze die view um upzudaten
__________________
Sermon ist offline   Mit Zitat antworten
Alt 18.08.2011, 08:30  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

offensichtlich ist das verstehende Lesen bei dir nicht besonders ausgeprägt ...

das Problem ist der Sub-Select..

mit einem einfachen Self-Join sollte es klappen
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 26.01.2012, 15:53  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Hallo.
Das Thema ist zwar etwas älter aber ich hoffe ihr könnt mir trotzdem helfen.
Anscheinend habe ich mich falsch ausgedrückt.
Ich versuche meine Problem nochmal zu schildern.
Ich habe eine Tabelle in einer Datenbank, die ich updaten will.
Aber um an die gesuchten Zeilen ran zu kommen, die ich updaten will, muss ich über 2 weitere Datenbanken gehen.
deswegen habe ich mir die relevanten id's in einer View erstellt.
Und die Tabelle die upgedatet werden soll, soll mit hilfe dieser View geupdatet werden. also wo liegt mein Fehler?
__________________
Sermon ist offline   Mit Zitat antworten
Alt 26.01.2012, 16:04  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

fakt ist - du lieferst immer noch zu wenig Daten - wozu brauchst du überhaupt die Information aus ANDEREN DATENBANKEN, für ein Update ? du musst doch nur die betreffenden Datensätze spezifizieren - ich vermute bei deinem vorherigen VIEW-Versuch scheitert er daran, dass die zu updatende Tabelle eben Bestandteil des Views ist ...

also vielleicht legst du mal die Beziehung dar, und warum du so "von hinten durch die Brust ins Auge" operierst? - Im übrigen kannst du direkt Spalten und Tabellen aus anderen Datenbanken ansprechen mit der Notation

<datenbank>.<tabelle>.<spalte>, vorausgesetzt, die anderen Datenbanken liegen auf dem gleichen Datenbank-System und der User hat Zugriffsrechte auf alle 3 Datenbanken
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
'as'-Bezeichner in where bedingung nutzen siwesa Datenbanken 4 10.05.2011 11:48
[Erledigt] Update über mehrere Zeilen einer Tabelle topoh Datenbanken 16 04.02.2011 18:53
UPDATE SET WHERE - fortlaufend subtrahieren moerkel PHP Einsteiger 11 04.01.2011 14:07
Select -> Where bedingung geht nicht. Rutor PHP Tipps 2010 14 26.05.2010 17:41
[Erledigt] 2 where bei Update phplars PHP Tipps 2010 9 02.02.2010 19:45
Bestehende php /Myqsl Tabelle Neben einander aus geben Totti-Totti PHP Tipps 2009 3 21.12.2009 11:00
UPDATE Set WHERE Problem IIYTII PHP Tipps 2009 6 07.12.2009 12:20
[Erledigt] Abfrage mit array als WHERE Bedingung jank Datenbanken 15 31.05.2009 18:27
nested sets update und insert auf eine tabelle in einer aktion litterauspirna Datenbanken 9 09.11.2008 13:57
Where Bedingung mit Session datei incubo PHP Tipps 2008 11 28.04.2008 14:26
[Erledigt] nach NULL abfragen / where bedingung Datenbanken 3 13.03.2006 16:44
zeilen aus tabelle löschen wenn bedingung nicht erfüllt PHP Tipps 2007 4 14.12.2005 20:32
Where Bedingung phpbeginner Datenbanken 4 24.06.2005 11:49
[Erledigt] SELECT * FROM tabelle WHERE id 'zwischen' 10 AND 20 Datenbanken 2 28.11.2004 14:37
letztes update von Tabelle auslesen Datenbanken 6 18.09.2004 21:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
update über 2 tabellen, the definition of table prevents operation update on table, update mit where bedingung, #1443 - the definition of table, update mit 2 tabellen, #1093 - you can\'t specify target table for update in from clause, update set 2 tabellen, update 2 tabellen, the definition of table \'bauid\' prevents operation update on table \'anlagenvertragstypen\'., beispiel php update 2 tabellen, php 2 tabellen updaten where id, 2 tabelle update, php 2 datenbank tabellen update, select * from tblpsa where, update mit where klausel über 2 tabellen, update 2 tabelle, mysql update nächste zeile 1093, update select 2 tabellen, mehrere zeilen mit selber id updaten

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum