Zum Inhalt springen

Insert Into?


Enno

Empfohlene Beiträge

hallo,

ich komm leider grad netmal druaf nach was ich suchen muss.

also mein problem:

ich habe zwei tabellen.

Tabelle A

mit x Feldern. wichtigstes: Barcode

Tabelle B ebenfalls mit Barcode

Nun stehen in Tabelle A alle Barcodes.

in Tabelle B stehen aber nicht alle drin.

Wie funktioniert es nun das ich die die in Tabelle A stehen in Tabelle B mit hinzufüge. Das zweite Feld in Tabelle B muss dabei NULL sein.

Irgendwie mit INSERT INTO nur args, irgendwie hat mich mein Hirn schon ins Wochenende verabschiedet.

Danke für jeden Tip.

Gruß

Enno

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du 'Barcode' als Primärschlüssel hast wirds n Fehler geben oder übersprungen, jenachdem, wie sich die DB verhalten soll.

Wenn in Tabelle_b keine weiteren wichtigen Daten sind, lösch allen Inhalt aus B und für das Statement von Jasper aus.

Ansonsten müsste man checken, ob der aktuelle Barcode bereits in B vorhanden ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

aehm und was passiert wenn der barcode aus tabelle a schon in tabelle b enthalten ist, der darf ja nur 1mal vorkommen. bzw. wenn er schon in tabelle b vorhanden ist darf ich den nicht nochmal einfügen.

insert into b (id) select id from a where id not in (select id from B);

-j

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Stichwort ist

merge

gruss


>>-MERGE INTO--+-table-name-------+----------------------------->
2 +-view-name--------+
2 '-4 (2 --4 fullselect2 --4 )2 -'
2
2 >--+------------------------+--USING--table-reference----------->
2 '-4 | correlation-clause |2 -'
2
2 >--ON--search-condition----------------------------------------->
2
2 .--------------------------------------------------------------------.
2 V |
2 >----WHEN--| matching-condition |--THEN--+-| modification-operation |-+-+-->
2 '-signal-statement-----------'
2
2 .-ELSE IGNORE-.
2 >--+-------------+---------------------------------------------><
2
2 correlation-clause:
2
2 .-4 AS2 -.
2 |--+----+--4 correlation-name2 --+-----------------------+----------|
2 | .-,-----------. |
2 | V | |
2 '-4 (2 ----4 column-name2 -+--4 )2 -'
2
2 matching-condition:
2
2 |--+-----+--MATCHED--+-----------------------+------------------|
2 '-NOT-' '-AND--search-condition-'
2
2 modification-operation:
2
2 |--+-UPDATE SET--| assignment-clause |-+------------------------|
2 +-DELETE----------------------------+
2 '-| insert-operation |--------------'
2
2 assignment-clause:
2
2 .-,--------------------------------------------------------.
2 V |
2 |----+-column-name-- = --+-expression-+---------------------+-+--|
2 | +-DEFAULT----+ |
2 | '-NULL-------' |
2 | .-,-----------. .-,--------------. |
2 | V | V | |
2 '-(----column-name-+--)-- = --(----+-expression-+-+--)-'
2 +-DEFAULT----+
2 '-NULL-------'
2
2 insert-operation:
2
2 |--INSERT--+-----------------------+---------------------------->
2 | .-,-----------. |
2 | V | |
2 '-(----column-name-+--)-'
2
2 >--VALUES--+-+-expression-+-----------+-------------------------|
2 | +-DEFAULT----+ |
2 | '-NULL-------' |
2 | .-,--------------. |
2 | V | |
2 '-(----+-expression-+-+--)-'
2 +-DEFAULT----+
2 '-NULL-------'

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab ungefähr das gleiche Problem

Hab zwei Tabellen in denen sich der gleiche Inhalt befindet. Fast zumindest. Wie kann ich es schaffen das alles aus der einen Tabelle in die andere übernommen wird, bis auf das was schon vorhanden ist. Das mit dem not in geht doch nur bei einem Primary Key, oder?

Bei mir wären es insgesamt drei.

Evtl hilft mir die Lösung von zirri, aber ich versteh net so ganz wie da was funktioniert ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

weil wenn ich sage

insert into abc ( a,b,c )

where a,b,c not in ( select a,b,c from x )


Insert Into y(a,b,c) Select a,b,c from x where a not in (select a from y)

and b not in (select b from y)

and c not in (select c from y);

Ansonsten poste doch mal die Fehlermeldung. Das hilft bestimmt weiter als die Aussage das es nicht geht ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok so funktioniert das ja theoretisch.

Aber irgendwie begreif ich des im moment net ganz.. könnte auch an der Uhrzeit liegen ( 14Stunden + x auf Arbeit ist glaub ich net so gut )

Also bei mir ist ein Datensatz eindeutig wenn alle drei werte den wert z.b. 1,2 und 3 haben. Es kann aber auch noch 1,2,4 vorkommen usw.

Mit deinem Code würde ich doch theoretisch nix bekommen, da eine zahl mit großer wahrscheinlichkeit immer vorkommt!?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also bei mir ist ein Datensatz eindeutig wenn alle drei werte den wert z.b. 1,2 und 3 haben. Es kann aber auch noch 1,2,4 vorkommen usw.

Mit deinem Code würde ich doch theoretisch nix bekommen, da eine zahl mit großer wahrscheinlichkeit immer vorkommt!?

Da hast du vollkommen recht. So spontan fällt mir für dieses Problem allerdings auch keine Lösung ein

Sorry :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...