2012-04-04 10 views
2

Ich habe ein Problem mit meiner SQL-Anweisung, die ich verwende. Ich möchte die Daten in den zwei Tabellen speichern, die dieselbe ID haben. Der Vorgang des Einfügens sollte gleichzeitig erfolgen.Wie speichern Sie die Daten in verschiedenen Tabellen?

Die erste Tabelle:

ID  name 
---  ---- 
001  john 
002  kate 

Die zweite Tabelle:

ID  status 
--- ----------- 
001 married 
002 not married 

dies ist die SQL-Anweisung, die ich versucht habe, aber es funktioniert nicht:

insert into `table_one`, 'table table_two' 
values (ID='003', name='joe'), 
values(ID='003', status='married') 

Ich hoffe, dass du mir eine Lösung geben kannst ..

Vielen Dank ..

+4

Was benutzen Sie? meinSql? SQL Server? Orakel? Etwas anderes? –

+0

Mögliches Duplikat von http://stackoverflow.com/questions/175066/sql-server-is-it-possible-to-insert-into-two-tables-at-the-same-time –

+0

ich benutze mysql .. i möchte die Daten in zwei Tabellen gleichzeitig einfügen. – user1137094

Antwort

5

Eine INSERT-Anweisung funktioniert auf einer einzelnen Tabelle; Sie benötigen zwei separate INSERT-Anweisungen - eine für jede Tabelle.

Wenn Sie möchten, dass beide Einfügungen entweder erfolgreich oder fehlschlagen (im Gegensatz zu einer erfolgreichen und einer fehlgeschlagenen), sollten Sie beide Anweisungen in einer einzigen Transaktion ausführen.

+0

Kann ich AND oder etwas anderes verwenden, um die Anweisung zu mischen, so dass ich nur eine einzige SQL-Anweisung schreibe, die in zwei Tabellen eingefügt werden soll? – user1137094

+2

@ user1137094 Nein, die Datenmanipulationssprachen-Teilmenge von SQL lässt Sie nicht mehrere Tabellen gleichzeitig bearbeiten. Sie können jedoch eine * gespeicherte Prozedur * schreiben, die zwei Einfügungen in etwas kombiniert, das Sie in einer einzelnen Anweisung aufrufen können. – dasblinkenlight

1

Sie können keine Daten in zwei verschiedenen Tabellen in einer SQL-Anweisung einfügen. Sie müssen es in zwei Aussagen spalten:

insert into table_one (ID,name) values ('003','joe'); 
insert into table_two (ID,status) values ('003','married'); 

es in einer Transaktion einschließen, wenn Sie garantieren müssen, dass beide Aussagen entweder scheitern oder gelingen.

+0

eigentlich möchte ich die neuen Daten auf einmal speichern. Kann ich UND-Funktion verwenden? Mischen Sie die SQL-Einfügung .. – user1137094

+0

Nein, Sie können nicht verwenden, um die SQL-Einfügung und mischen. Sie speichern die Daten einmal. Selbst wenn Sie diese eine Aussage ausdrücken könnten, wird die Datenbank-Engine den Insert wahrscheinlich in zwei Schritte aufteilen. Ich verstehe nicht, warum Sie sich darüber Sorgen machen. – Icarus

0
INSERT INTO 'table_one'(ID, name) 
VALUES ('003', 'joe') 

INSERT INTO 'table_two' (ID, status) 
VALUES ('003', 'married') 
Verwandte Themen