Hallo Leute,
ich hoffe, dass ihr mir helfen könnt.
Ich habe eine Tabelle namens 'istveranstvon' und sie enthält folgende Felder: 'veranstaltung', 'unitimenr', 'curricula', 'wpf'; PK sind 'veranstaltung' und 'curricula'
Eine zweite Tabelle heißt 'veranstaltung' und besitzt folgende Felder: 'veranstnr', 'veranstname' und andere unwichtige Informationsfelder; PK ist veranstnr.
Ich möchte jetzt, dass alle einmal vorkommenden Werte in der Spalte 'veranstaltung' der Tabelle 'istveranstvon' in die Spalte der Tabelle 'veranstaltung' übernommen werden. Bereits vorkommende Werte sollen ignoriert werden.
Ich bin das Problem anhand eines Cursors angegangen:
Nun habe ich das Problem, dass ich folgende Fehlermeldung bekomme
Error Code: 1062. Duplicate entry '41011' for key 'PRIMARY'
Weiter weiss ich nicht. Habt ihr eine Ahnung, wie ich das Problem lösen kann?
Geht es vielleicht sogar mit einer einfachen select-Anweisung?
Freundlicher Gruß
placebo
ich hoffe, dass ihr mir helfen könnt.
Ich habe eine Tabelle namens 'istveranstvon' und sie enthält folgende Felder: 'veranstaltung', 'unitimenr', 'curricula', 'wpf'; PK sind 'veranstaltung' und 'curricula'
Eine zweite Tabelle heißt 'veranstaltung' und besitzt folgende Felder: 'veranstnr', 'veranstname' und andere unwichtige Informationsfelder; PK ist veranstnr.
Ich möchte jetzt, dass alle einmal vorkommenden Werte in der Spalte 'veranstaltung' der Tabelle 'istveranstvon' in die Spalte der Tabelle 'veranstaltung' übernommen werden. Bereits vorkommende Werte sollen ignoriert werden.
Ich bin das Problem anhand eines Cursors angegangen:
Code:
DELIMITER $$
CREATE PROCEDURE cursor_example12()
BEGIN
DECLARE var_col1, var_done INT DEFAULT 0;
DECLARE myCursor CURSOR FOR SELECT pufferTabelle.veranstaltung FROM
(SELECT veranstaltung FROM fbiplan.istveranstvon GROUP BY veranstaltung HAVING (COUNT(veranstaltung)>=1)) pufferTabelle;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET var_done = 1;
-- SET var_done = 0; #only required if there is a SELECT ... INTO ... before opening the cursor, which could return no results
OPEN myCursor;
FETCH NEXT FROM myCursor INTO var_col1;
WHILE NOT var_done DO
update fbiplan.veranstaltung set veranstNr=var_col1; #or whatever the loop is supposed to do
-- SET var_done = 0; #only required if there is a SELECT ... INTO ... in the loop, which could return no results
FETCH myCursor INTO var_col1;
END WHILE;
CLOSE myCursor;
END$$
Nun habe ich das Problem, dass ich folgende Fehlermeldung bekomme
Error Code: 1062. Duplicate entry '41011' for key 'PRIMARY'
Weiter weiss ich nicht. Habt ihr eine Ahnung, wie ich das Problem lösen kann?
Geht es vielleicht sogar mit einer einfachen select-Anweisung?
Freundlicher Gruß
placebo