login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MySQL automatisch invullen van nieuwe kolum die refereert naar andere tabel (Opgelost)

Offline Beirensg - 13/01/2011 13:28 (laatste wijziging 13/01/2011 16:55)
Avatar van BeirensgHTML beginner Ik heb volgend tabellen in mijn DB:

Tabel1
ID_tabel1 | field1
_____________________
1 | "blabla"
2 | "..."

Tabel2 (leeg)
ID_tabel2 | field2
_____________________
|

Nu heb ik aan tabel 1 een field toegevoegd "tabel2_ID_tabel2" dewelke een foreign key is die refereert aan tabel2.ID_tabel2 (de waarde mag null zijn).
Nu zou ik voor elk item in tabel1 een item willen aanmaken in tabel2. Daarbovenop moet tabel1.tabel2_ID_tabel2 aangepast worden naar de ID van het item aangemaakt in tabel2; en tabel2.field2 moet ingevuld worden met de waarde van tabel1.field1.
Kan dit op een automatisch manier; bvb door functies in SQL? En hoe pak ik dit het beste aan? tabel1 bevat ongeveer 200 items.

Na verder te kijken heb ik volgende procedure geschreven:
  1. CREATE PROCEDURE forum()
  2. BEGIN
  3. DECLARE textfield1 VARCHAR(120);
  4. DECLARE time TIMESTAMP;
  5. DECLARE FOUND BOOLEAN DEFAULT TRUE;
  6. DECLARE id_idtabel1 INT(10);
  7. DECLARE C_obj CURSOR FOR
  8. SELECT ID_tabel1,field1 FROM tabel1 WHERE tabel2_idtabel2 IS NULL;
  9. DECLARE CONTINUE HANDLER FOR NOT FOUND
  10. SET FOUND=FALSE;
  11.  
  12. SET time=CURRENT_TIMESTAMP();
  13. OPEN C_obj;
  14. FETCH C_obj INTO id_idtabel1,textfield1;
  15. WHILE FOUND DO
  16. INSERT INTO tabel2 (field2)
  17. VALUES (textfield1);
  18. UPDATE tabel1
  19. SET tabel2_ID_tabel2 = LAST_INSERT_ID()
  20. WHERE ID_tabel1 = id_idtabel1;
  21. FETCH C_obj INTO id_idtabel1,textfield1;
  22. END WHILE;
  23. CLOSE C_obj;
  24. END


werkt en doet exact wat ik wou.

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.153s