Insert mit subselect
am 17.10.2007 13:16:41 von Jens Puruckherr
Hallo,
in einem via XSLT generierten Batchfile gibt es sehr viele Queries in
der Art:
....
insert into a (alid,artikelid) values (
'17011160', (select artikelid from b where artikel="3501-508"));
....
Wenn der subselect keine Eintrag findet, schlägt das Insert fehl, da
artikelid nicht NULL sein darf.
Das ist kein Problem und auch richtig, aber das ganze Batchfile hält
dadurch an. In diesem Fall soll es aber weiterlaufen, da hier
Verknüpfungen zwischen Tabellen erstellt werden. Die weiteren Einträge
sollen durchaus geschrieben werden.
Wie kann ich den Fehler abfangen?
Ich habe mir IF() angeschaut, aber das scheint nicht das Mittel der Wahl
zu sein.
Jens
Re: Insert mit subselect
am 17.10.2007 13:20:50 von Thomas Rachel
Jens Puruckherr schrieb:
> Wenn der subselect keine Eintrag findet, schlägt das Insert fehl, da
> artikelid nicht NULL sein darf.
> Das ist kein Problem und auch richtig, aber das ganze Batchfile hält
> dadurch an. In diesem Fall soll es aber weiterlaufen, da hier
> Verknüpfungen zwischen Tabellen erstellt werden. Die weiteren Einträge
> sollen durchaus geschrieben werden.
>
> Wie kann ich den Fehler abfangen?
INSERT IGNORE vielleicht?
Thomas
Re: Insert mit subselect
am 17.10.2007 13:22:52 von Claus Reibenstein
Jens Puruckherr schrieb:
> in einem via XSLT generierten Batchfile gibt es sehr viele Queries in
> der Art:
>
> ....
> insert into a (alid,artikelid) values (
> '17011160', (select artikelid from b where artikel="3501-508"));
> ....
>
> Wenn der subselect keine Eintrag findet, schlägt das Insert fehl, da
> artikelid nicht NULL sein darf.
Versuch's mal damit:
insert into a (alid,artikelid)
select '17011160', artikelid from b where artikel="3501-508";
Gruß. Claus
Re: Insert mit subselect
am 17.10.2007 15:54:03 von Jens Puruckherr
Claus Reibenstein schrieb:
> Versuch's mal damit:
>
> insert into a (alid,artikelid)
> select '17011160', artikelid from b where artikel="3501-508";
>
Danke, so tuts.
Jens