G
Gelöschtes Mitglied 16444
Guest
Moin HaBo,
ich habe eine Tabelle goods, in der Artikel aufgelistet sind. Zusätzlich habe ich eine Tabelle storage, wo aufgelistet wird, wo diese Güter gelagert sind und wie deren Preis dort ist.
Nun gibt es auch gebrauchte Güter, die quasi in der goods Tabelle doppelt vorkommen und sich nur im Namen durch ein vorangestelltes 'used ' unterscheiden.
Jetzt möchte ich aber in der storage Tabelle die item_id aller gebrauchten Produkte auf die des neuwertigen Produktes ändern und zusätzlich den Preis (der zur Zeit noch der des neuwertigen Artikels ist) auf 40% reduzieren.
Bei der Ausführung gibt es allerdings Probleme:
Jemand einen Tipp, wie ich die Ausführungszeit des Querrys verkürzen kann?
Die Tabelle goods hat ~3000 Zeilen und storage ~36000 Zeilen.
ich habe eine Tabelle goods, in der Artikel aufgelistet sind. Zusätzlich habe ich eine Tabelle storage, wo aufgelistet wird, wo diese Güter gelagert sind und wie deren Preis dort ist.
Nun gibt es auch gebrauchte Güter, die quasi in der goods Tabelle doppelt vorkommen und sich nur im Namen durch ein vorangestelltes 'used ' unterscheiden.
Jetzt möchte ich aber in der storage Tabelle die item_id aller gebrauchten Produkte auf die des neuwertigen Produktes ändern und zusätzlich den Preis (der zur Zeit noch der des neuwertigen Artikels ist) auf 40% reduzieren.
Code:
UPDATE storage
JOIN goods used ON ( storage.itemId = used.item_id )
JOIN goods ON ( goods.name = SUBSTRING( used.name, 5 ) )
SET itemId = goods.item_id, price = price * 0.4
Bei der Ausführung gibt es allerdings Probleme:
Code:
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
Jemand einen Tipp, wie ich die Ausführungszeit des Querrys verkürzen kann?
Die Tabelle goods hat ~3000 Zeilen und storage ~36000 Zeilen.