ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
1539
1539
EMPFEHLEN
-
27.03.09 18:44 #1
- Registriert seit
- Mar 2009
- Beiträge
- 19
Tag zusammen,
ich habe folgendes Problem und schreibe nun in der Hoffnung, das mir jemand vielleicht helfen kann.
Folgendes Problem:
Ich habe 2 Tabellen in der ich gleichzeitig daten reinschreiben will, das Problem besteht jedoch darin, das ich in die zweite tabelle, den Primärschlüssel reinschreiben muss, welcher in der ersten tabelle erst erzeugt werden muss.
Der Primärschlüssel wird ja automatisch erzeugt, da dieser den TYP AUTO INCREMENT hat und der muss halt gleichzeitg in die andere Tabelle.
Ich versuche das an einem kleinen Beispiel darzustellen
INSERT INTO t1,t2(
t1.name
t1.vname
t2.(id von t1) ---> Hier tritt dann mein Problem auf, wie kann ich das realisieern?
Danke schonmal im Voraus!
Lg
LxLehrling
-
Hi,
Insert arbeitet nur auf einer Tabelle. Du mußt also erst in die Tabelle schreiben, wo der auto-increment-Indexwert erzeugt wird und dann diese Tabelle auslesen, welches der höchste Index-Wert ist. Das ist Deine ID, die Du für den zweiten Insert in t2 verwendest. Allerdings ist dieses Verfahren nicht transaktionssicher, also mußte Du die Tabelle vorher locken (lock tables).
In Oracle kann ich mich dran erinnern, dass man mit Triggern auch einen Insert bemerken kann und datensatzweise die Informationen erhält, was durch die Transaktion eingefügt wurde und so hättest Du auch die gewünschte ID und kannst dann dort das zweite Insert machen - weiß nicht, ob Mysql das auch kann.
Grüße
Oliver
-
Hallo,
MySql kann auch Trigger:
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
CREATE TABLE foo ( id INT PRIMARY KEY AUTO_INCREMENT, TYPE INT, content VARCHAR(255) ); CREATE TABLE bar ( id INT , TYPE INT, content VARCHAR(255) ); DROP TRIGGER IF EXISTS catchINSERT CREATE TRIGGER catchINSERT AFTER INSERT ON foo INSERT INTO bar SET id = NEW.id; END; INSERT INTO foo VALUES ( 0, 3, 'hmmHOOO' ); SELECT * FROM bar
Noch mehr zu Triggern bei mysql: http://dev.mysql.com/doc/refman/6.0/...e-trigger.html
Ich hoffe ich konnte Dir helfen.
Grüße
-
28.03.09 17:17 #4
- Registriert seit
- Mar 2009
- Beiträge
- 19
Erstmal vielen dank an beide,
habe nun erstmal die variante von Codago verwendet, da diese mir etwas einfacher schien.
Habe aber die Lock Tables erstmal weggelassen, da diese erstmal nicht so von bedeutung waren.
Nochmal Thx!
Lg
LxLehrling
Ähnliche Themen
-
MySQL Abfrage aus 3 Tabellen
Von hiltwin im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 13.10.10, 21:18 -
[MySQL] Insert Into in 2 Tabellen schreiben
Von LarsB im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 03.05.10, 20:15 -
MySQL Abfrage mit 2 Tabellen
Von Kalma im Forum PHPAntworten: 13Letzter Beitrag: 12.06.09, 10:49 -
MySQL abfrage von 5 Tabellen
Von Marco-P im Forum PHPAntworten: 2Letzter Beitrag: 03.04.09, 00:13 -
Mysql/PHP Abfrage 2 Tabellen
Von Spontan im Forum PHPAntworten: 4Letzter Beitrag: 10.09.04, 15:59





Zitieren
Login





