ďťż
 
Insert do 2 tabel: KLIENCI --- ADRESY. ďťż
 
Insert do 2 tabel: KLIENCI --- ADRESY.
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Insert do 2 tabel: KLIENCI --- ADRESY.



pietrina@orange.pl - 16-05-2007 00:01
Insert do 2 tabel: KLIENCI --- ADRESY.
  Witam,
nie moge sobie poradzic z insertem do tabeli KLIENCI zawierającej FK
tabeli ADRESY.
Jeśli zrobię najpierw insert do ADRESY a później KLIENCI ze
zdefiniowaniem ostatniej komórki z ADRESY jest ok, ale tak jest
przecież beznadziejnie, workaround zrobiłem aby pójść dalej.

Jak ten banał powinien wyglądać??
Tak przykładowo poniżej jak to moze wyglądać.
PK są tutaj identity (baza Derby - DB2)

KLIENCI
idKlienta(PK)
idAdresu (FK)
Imie
Nazwisko

ADRESY
idAdresu (PK)
Adres

Pozdrawiam,
Piotrek.





hubert depesz lubaczewski - 16-05-2007 00:01

  On 2007-05-15, pietrina@orange.pl <pietrina@orange.pl> wrote:
> Jeśli zrobię najpierw insert do ADRESY a później KLIENCI ze
> zdefiniowaniem ostatniej komórki z ADRESY jest ok, ale tak jest
> przecież beznadziejnie, workaround zrobiłem aby pójść dalej.

ale co ci w tym nie pasuje?

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)




Artur - 16-05-2007 00:01

  Mała zmiana:

KLIENCI
idKlienta(PK)
Imie
Nazwisko

ADRESY
idAdresu (PK)
idKlienta (FK)
Adres

Najpierw wprowadzasz KLIENTA, baza generuje Ci KLIENCI:idKlienta
(PK).
Zapamiętujesz KLIENCI:idKlienta w zmiennej i jak wstawiasz ADRES
podajesz to ID do pola ADRESY:idKlienta (FK), by związać z klientem.

Bez klucza idAdresu (PK) można by się obejść, ale taki sztuczny klucz
zawsze się przydaje (by np usuwać określone adresy, jeśli klient ma
ich wiele).

Na marginesie, w DB2 (choć nie wiem czy Derby to wspiera) można
wykonać select z inserta (jednocześnie wstawiasz i pobierasz
wygenerowaną wartość). Działa b.wydajnie, ponieważ to tylko jedna
operacja SQL:

select idKlienta from new table (
insert into KLIENCI (imie, nazwisko) values
('Adam', 'Mickiewicz')
) as t;

-- Artur Wroński




pietrina@orange.pl - 17-06-2007 00:15

  On 15 Maj, 23:35, Artur <artur.wron...@gmail.com> wrote:
> Ma?a zmiana:
>
> KLIENCI
> idKlienta(PK)
> Imie
> Nazwisko
>
> ADRESY
> idAdresu (PK)
> idKlienta (FK)
> Adres
>
> Najpierw wprowadzasz KLIENTA, baza generuje Ci KLIENCI:idKlienta
> (PK).
> Zapami?tujesz KLIENCI:idKlienta w zmiennej i jak wstawiasz ADRES
> podajesz to ID do pola ADRESY:idKlienta (FK), by zwi?za? z klientem.
>
> Bez klucza idAdresu (PK) mo?na by si? obej??, ale taki sztuczny klucz
> zawsze si? przydaje (by np usuwa? okre?lone adresy, je?li klient ma
> ich wiele).
>
> Na marginesie, w DB2 (cho? nie wiem czy Derby to wspiera) mo?na
> wykona? select z inserta (jednocze?nie wstawiasz i pobierasz
> wygenerowan? warto??). Dzia?a b.wydajnie, poniewa? to tylko jedna
> operacja SQL:
>
> select idKlienta from new table (
> insert into KLIENCI (imie, nazwisko) values
> ('Adam', 'Mickiewicz')
> ) as t;
>
> -- Artur Wro?ski

Niestety nie poradzi?em sobie z tym pod Derby.
Nie dzia?a select z inserta. W dokumentacji DERBY s? tylko podstawowe
inserty. Nic mi pomocnego nie znalazlem.

Co do zamiany idAdresu, nie do ko?ca mi si? to podoba, bowiem
uzale?nia nam Twój sposób tabel? Adresy od innych tabel.
Je?li b?dziesz chcia? doda? powiedzmy tabel? Kierownicy, to wtedy
b?dziesz móg? spokojnie operowa? idAdresy jako PK w tabeli Kierownicy.
Ja u?ywam takiego typu danych, bardzo podobnie to u mnie wygl?da:
http://www.databaseanswers.org/data_...tice/index.htm

Tylko, ?e u mnie mi?dzy Staff a Patients jest relacja Adresy po??czona
mi?dzy lekarze a pacjenci relacj? jeden do jednego.

Jakie? propozycje jak to rozwi?za? w DERBY??

Pozdrawiam,
Piotrek.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [mysql] Wyszukanie =?ISO-8859-2?Q?rekord=F3w=28powiazane_tabel?==?ISO-8859-2?Q?e=29?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= zapytanie do =?ISO-8859-2?Q?dw=F3ch_tabel_z_limitem_wier?==?ISO-8859-2?Q?szy?= [mysql] =?ISO-8859-2?Q?po=B3=B1czenie_tabel_wg_kolumn=2C_?==?ISO-8859-2?Q?nie_wierszy?= Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?= [MySQL] Backup tabel przez "BACKUP" i problem z prawami dostępu :( [postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?= =?iso-8859-2?Q?Problem_z_left_join_-_=B3=B1czenie_kilku_tabel.?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lisinski.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com