ich bin gerade verzweifelt an der Suche nach einer Lösung den Artist/Interpret jeden Songs in ein von mir angelegten Attribut, nennen wir es AttributX, zu kopieren.
Das ganze wäre super einfach, wären die Song Arrtibuten in der gleichen Tabelle wo der rest gespeichert wird - ist es aber leider nicht.
Die Infos wie Title, Artist und alles weitere finden sich in Tabelle “items”. Daraus möchte ich nun den Artist in Tabelle “item_attributes” und Column AttributX kopieren. Hierzu folgender ansatz…
UPDATE item_attributes set AttributX=(select ARTIST from items);
Jup, das ist in der Tat nicht so einfach.
Aber was spricht dagegen, daß du Mairlist die Arbeit machen lässt?
Wenn du das Attribut in Mairlist angelegt hast, kannst du dieses doch über die Massenbearbeitung füllen?
--- Alte Attributwerte löschen
DELETE FROM items_attributes WHERE name='AttributX';
-- Interpret in Attribut kopieren
INSERT INTO item_attributes (item, name, value)
SELECT idx, 'AttributX', artist FROM items;
Der DELETE-Befehl ist notwendig, da der zweite Befehl sonst fehlschlägt in dem Fall, wo das Attribut bei einigen Elementen bereits gesetzt ist (wiederholte Ausführung).
Wie würde das in BATCH aussehen? Im Bezug auf die Windows Aufgabenplanung.
#!/bin/bash --
sqlite3 plusradio.mldb "DELETE FROM items_attributes WHERE name='MM-Artist';"
echo "INSERT INTO item_attributes (item, name, value)"
echo "SELECT idx, 'MM-Artist', artist FROM items;"
Einfach beide Statements hintereinander, mit Semikolon getrennt:
sqlite3 plusradio.mldb "DELETE FROM items_attributes WHERE name='MM-Artist'; INSERT INTO item_attributes (item, name, value) SELECT idx, 'MM-Artist', artist FROM items;"
Hab’s nicht ausprobiert, aber so sollte es klappen.