Insert mit subselect

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
Jens Puruckherr [ Mi, 17 Oktober 2007 13:16 ] [ ID #1847131 ]

Re: Insert mit subselect

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
Thomas Rachel [ Mi, 17 Oktober 2007 13:20 ] [ ID #1847133 ]

Re: Insert mit subselect

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
Claus Reibenstein [ Mi, 17 Oktober 2007 13:22 ] [ ID #1847134 ]

Re: Insert mit subselect

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
Jens Puruckherr [ Mi, 17 Oktober 2007 15:54 ] [ ID #1847136 ]
Datenbanken » de.comp.datenbanken.mysql » Insert mit subselect

Vorheriges Thema: info durch command line tool
Nächstes Thema: Importprobleme einer Datenbank, aus Umlauten, SOnderzeichen wird ein ? Fragezeichen