=?iso-8859-2?q?MySQL_-_insert_do_dw=F3ch_tabel?=
fotozajac@gmail.com - 16-08-2007 00:00
=?iso-8859-2?q?MySQL_-_insert_do_dw=F3ch_tabel?=
Piszę małą aplikację w Javie i nie wiem jak wstawić dane z formatki do dwóch, powiązanych ze sobą tabel.
Mam utworzone dwie tabele: T1 (id_t1, kolumna_1, kolumna_2, kolumna_3) T2 (id_t2, id_t1, kolumna_A, kolumna_B)
id_t1, id_t2 - auto increment
Wstawiam insertem dane do tabeli T1 bez problemu, ale jak teraz wstawić dane do tabeli T2 tak żeby były ze sobą powiązane. Na moje oko problem sprowadza się do przechwycenia "id_t1" i wstawienia go do tabeli T2, pytanie jak to zrobić ?? Czy mógłby ktoś napisać przykładowego inserta ?
Dzięki
Marcin - 16-08-2007 00:01
fotozajac@gmail.com napisał(a): > Piszę małą aplikację w Javie i nie wiem jak wstawić dane z formatki do > dwóch, powiązanych ze sobą tabel. > > Mam utworzone dwie tabele: > T1 (id_t1, kolumna_1, kolumna_2, kolumna_3) > T2 (id_t2, id_t1, kolumna_A, kolumna_B) > > id_t1, id_t2 - auto increment > > Wstawiam insertem dane do tabeli T1 bez problemu, ale jak teraz > wstawić dane do tabeli T2 tak żeby były ze sobą powiązane. Na moje oko > problem sprowadza się do przechwycenia "id_t1" i wstawienia go do > tabeli T2, pytanie jak to zrobić ?? > Czy mógłby ktoś napisać przykładowego inserta ? > > Dzięki >
Zdaje się, że do tego celu służy funkcja last_insert_id():
mysql> create table t1 -> ( -> id_t1 int not null auto_increment primary key, -> kolumna_1 varchar(10), -> kolumna_2 varchar(10), -> kolumna_3 varchar(10) -> ) type=InnoDB; Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> mysql> create table t2 -> ( -> id_t2 int auto_increment primary key, -> id_t1 int not null, -> kolumna_A varchar(10), -> kolumna_B varchar(10), -> foreign key (id_t1) references t1(id_t1) on delete cascade -> ) -> type=InnoDB; Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> insert into t1(kolumna_1, kolumna_2, kolumna_3) -> values ('1','2','3'); Query OK, 1 row affected (0.02 sec)
mysql> insert into t2(id_t1, kolumna_A, kolumna_B) -> values(last_insert_id(), 'A', 'B'); Query OK, 1 row affected (0.03 sec)
mysql> select * from t1; +-------+-----------+-----------+-----------+ | id_t1 | kolumna_1 | kolumna_2 | kolumna_3 | +-------+-----------+-----------+-----------+ | 1 | 1 | 2 | 3 | +-------+-----------+-----------+-----------+ 1 row in set (0.00 sec)
mysql> select * from t2; +-------+-------+-----------+-----------+ | id_t2 | id_t1 | kolumna_A | kolumna_B | +-------+-------+-----------+-----------+ | 1 | 1 | A | B | +-------+-------+-----------+-----------+ 1 row in set (0.00 sec)
Pozdrawiam, Marcin
fotozajac@gmail.com - 16-08-2007 00:01
=?iso-8859-2?q?Re:_MySQL_-_insert_do_dw=F3ch_tabel?=
Dzięki serdecznie za obszerną informację. Z linii poleceń MySQL działa spoko, zastanawia mnie tylko dlaczego wpisując te same inserty w graficznej nakładce "MySQL Query Browser" wywala błąd:
Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`id_t1`) REFERENCES `t1` (`id_t1`) ON DELETE CASCADE)
No cóż, pewnie nakładki nie są doskonałe he he.
Jeszcze raz dzięki.
Misiekd - 16-08-2007 00:01
Dnia Wed, 15 Aug 2007 12:56:56 -0000, fotozajac@gmail.com napisał(a):
> Dzięki serdecznie za obszerną informację. Z linii poleceń MySQL działa > spoko, zastanawia mnie tylko dlaczego wpisując te same inserty w > graficznej nakładce "MySQL Query Browser" wywala błąd: > > Cannot add or update a child row: a foreign key constraint fails > (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`id_t1`) REFERENCES > `t1` (`id_t1`) ON DELETE CASCADE) > > No cóż, pewnie nakładki nie są doskonałe he he. > > Jeszcze raz dzięki.
przecież Ci pisze jak byk, że nie może wstawić bo w tabeli t1 nie masz rekordu z wstawianym id
-- Pozdrawiam Misiekd
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Gdzie MySQL 4.1, a gdzie 5.0?
[MS SQL] "set names" (mySQL) w MS SQL
oracle -> oracle lub oracle -> mysql replikacja - programy
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
[MySQL] Zwrot tego, co pasuje i nie pasuje :-/
[pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1
[mysql] galeria zdjec - numerowanie zdjec
[MySQL] Zapytanie z pliku , wynik do pliku
[mysql] CONCAT agregujący, ale nie GROUP_CONCAT()
mysql data 0000-00-00 na koniec
zanotowane.pldoc.pisz.plpdf.pisz.pllisinski.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|