Dodanie/Modyfikowanie wierszy w zaleznosci od innej tabeli
MK - 12-08-2006 01:32
Dodanie/Modyfikowanie wierszy w zaleznosci od innej tabeli
Witam
Pisze procedurki do przekopiowywania danych z jednej bazy do drugiej. Czynnosc ta bedzie robiona okresowo wiec musi byc to w miare uniwersalne. Baza ktora dostaje posiada mnustwo smieci. Przed przekopiowaniem musze to oczyscic i tu napotkalem pewien problem.
Jest tabela slownikowa powiedzmy SLOWNIK (id, nazwa) oraz tabela GLOWNA(id, id_slownik, ......) Nie ma rzadnych kluczy, indeskow itp w tej bazie.
Zdarza sie ze w tabeli SLOWNIK sa wiersze gdzie nazwa jest NULL, a w tabeli GLOWNA zdarzaja sie wiersze gdzie id_slownik wskazuje na nie istniejacy rekord w tabeli SLOWNIK.
Przed przkopiowaniem do bazy docelowej chce zrobic cos takiego. Na tebeli SLOWNIK wszystkie wiersze gdzie pole nazwa jest NULL wpisac np. 'nieznany'. Z tym nie mam problemu i tutaj sobie poradzilem.
Nie wiem tylko jak zrobic aby
Jesli w tabeli GLOWNA istnieje rekord powiazany z nie istniejacym rekordem z tabeli SLOWNIK to jak dodac w tabeli SLOWNIK dodatkowy rekord o nazwie 'nieznany' i 'id' takim na jaki wskazuje id_slownik z tabeli GLOWNA lub zmodyfikowac w tabeli GLOWNA pole 'id_slownik' na wartosc taka aby wskazywala na rekord w tabeli SLOWNIK o nazwie 'nieznany'
hmm mam nadzieje ze w miare jasno opislaem :)
Pozdrawiam
sg - 12-08-2006 01:32
MK napisał(a): > Witam > > Pisze procedurki do przekopiowywania danych z jednej bazy do drugiej. > Czynnosc ta bedzie robiona okresowo wiec musi byc to w miare uniwersalne. > Baza ktora dostaje posiada mnustwo smieci. > Przed przekopiowaniem musze to oczyscic i tu napotkalem pewien problem. > > Jest tabela slownikowa powiedzmy SLOWNIK (id, nazwa) > oraz tabela GLOWNA(id, id_slownik, ......) > Nie ma rzadnych kluczy, indeskow itp w tej bazie. >
no to gratuluję... zupełnie jak baza LeftHanda
> Zdarza sie ze w tabeli SLOWNIK sa wiersze gdzie nazwa jest NULL, > a w tabeli GLOWNA zdarzaja sie wiersze gdzie id_slownik wskazuje na > nie istniejacy rekord w tabeli SLOWNIK. >
no właśnie, brak powiązań między tabelami i brak ograniczeń not null
> Nie wiem tylko jak zrobic aby > > Jesli w tabeli GLOWNA istnieje rekord powiazany z nie istniejacym rekordem z > tabeli SLOWNIK > to jak dodac w tabeli SLOWNIK dodatkowy rekord o nazwie 'nieznany' i 'id' > takim na jaki > wskazuje id_slownik z tabeli GLOWNA > lub > zmodyfikowac w tabeli GLOWNA pole 'id_slownik' na wartosc taka aby > wskazywala na rekord > w tabeli SLOWNIK o nazwie 'nieznany' > > hmm mam nadzieje ze w miare jasno opislaem :) > > Pozdrawiam > >
no dobra, ale w czym problem? Przecież zupełnie ładnie opisałeśto jak to ma działać. Dla każdego rekordu z tabeli GLOWNA jest nieistniejący rekord z tabeli SLOWNIK to dodajesz do tabeli SLOWNIK rekord o takim indentyfikatorze
sg
MK - 12-08-2006 01:32
no dobra, ale w czym problem? Przecież zupełnie ładnie opisałeś to jak to ma działać. Dla każdego rekordu z tabeli GLOWNA jest nieistniejący rekord z tabeli SLOWNIK to dodajesz do tabeli SLOWNIK rekord o takim indentyfikatorze
sg
problem w tym ze chyba za dlugo nad tym siedze i mam totalne zacmienie i nie moge poradzic sobie z poprawnym napisaniem kodu w SQL :)
sg - 12-08-2006 01:32
MK napisał(a): > no dobra, ale w czym problem? Przecież zupełnie ładnie opisałeśto jak > to ma działać. > Dla każdego rekordu z tabeli GLOWNA jest nieistniejący rekord z tabeli > SLOWNIK to dodajesz do tabeli SLOWNIK rekord o takim indentyfikatorze > > sg > > problem w tym ze chyba za dlugo nad tym siedze i mam totalne zacmienie > i nie moge poradzic sobie z poprawnym napisaniem kodu w SQL :) > >
w jakim SQLu? nawet nie napisałeś jaka to baza... a najlepiej podaj kod z którym masz problem
sg
MK - 12-08-2006 01:32
w jakim SQLu? nawet nie napisałeś jaka to baza... a najlepiej podaj kod z którym masz problem
sg
Faktycznie mnie zacmilo. Baza MS SQL ale juz sobie poradzilem :)
update dbo.glowna set [kod typu] = (select [kod typu] from dbo.slownik where [typ placówki] = 'nieznany') where [kod typu] not in (select [kod typu] from dbo.slownik)
Dzieki za zainteresowanie i sorry za zamieszanie :)
Pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
Tworzenie tabeli z =?ISO-8859-2?Q?nazw=B1_ustalan=B1_przez_?==?ISO-8859-2?Q?usera?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
=?iso-8859-2?q?[ms_sql]_Sprawdzenie_kto_usun=B1=B3_dane_w_tabeli_=3F?=
=?iso-8859-2?q?zapytanie_mysql_-_podw=F3jne_odniesienie_do_jednej_tabeli=3F?=
[MSSQL 2000] czas wykonywania instrukcji INSERT - czy zalezy od ilosci danych w tabeli?
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.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 |
|