Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z triggerem
Forum PHP.pl > Forum > Bazy danych > MySQL
jakub0002
Dzień dobry, mam problem z uruchomieniem triggera w mojej bazie mysql.

Mam tabelę w której są dwie kolumny. W pierwszej jest numer rekordu, w drugiej kod w marc-xml

biblionumber
2

Marcxml
[...]
<datafield tag="245" ind1="1" ind2="0">
<subfield code="a">Burza piaskowa /</subfield>
<subfield code="c">Roman Samsel.</subfield>
</datafield>
[...]


Chciałbym, aby po dodaniu czegoś do tej tabeli wypełniła się druga tabela. Dokładnie chciałbym zapisać w niej nr rekordu i zawartość tagu 245 a i c.
Zrobiłem taki trigger, ale niestety dodaje się tylko biblionumber, natromiast w drugie pole nic się nie dodaje.
Może ktoś z was poradzi jak to rozwiązać, ewentualnie gdzie szukać informacji.

delimiter //
CREATE TRIGGER `title_from_245` AFTER INSERT ON biblioitems
FOR EACH ROW BEGIN

INSERT INTO strona_posts (biblio_id, post_title)

SELECT NEW.biblionumber, ExtractValue(NEW.marcxml, '//datafield[@tag="245"]/subfield[@code>="a"]') from biblioitems;

END;
//
delimiter ;


bpskiba
a tak questionmark.gif

  1. delimiter //
  2. CREATE TRIGGER `title_from_245` AFTER INSERT ON biblioitems
  3. FOR EACH ROW BEGIN
  4.  
  5. INSERT INTO strona_posts (biblio_id, post_title) VALUES (NEW.biblionumber, ExtractValue(NEW.marcxml))
  6.  
  7.  
  8. END;
  9. //
  10. delimiter ;
jakub0002
Dodał mi nowy wiersz z właściwym biblio_id, ale w polu post_title pusto.
Wygląda to jakby w polu wcześniejszym nie było jeszcze zawartości XML.



To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.