![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
1.
czy INSERT ma jakas opcje by dodal wpis tylko wtedy gdy takiego jeszcze nie ma, czy trzeba samemu poprzez SELECT wpierw sprwadzic czy danego wpisu jeszcze nie ma w bazie i jesli tak jest to dodac wpis? Drugie pytanie to: mam tabele A a w niej nazweA i idA, oraz tabele B a w niej idB, nazwaB i idA Teraz znam nazweA i che wydobyc nazweB z tabeli B gdzie idA jest takie jakie idA w tabeli A gdzie nazwaA jest taka jak to co znam ![]() Czy musze zadac dwa zapytania czy jest mozliwe zrobienia tego w jednym? Z gory dziekuje i pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Ad 1. Niestety INSERT nie ma takiej wlasciwosci, moglbys robic np przez jakas funkcje ktora by to sprawdzala, ale jesli jest to MySQL to odpada.
Ad 2.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 407 Pomógł: 0 Dołączył: 24.10.2002 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. dac polu, ktore ma sie nie powtarzac unique
-------------------- Zalew :: http://jakubzalewski.info
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. dac polu, ktore ma sie nie powtarzac unique Tego tak nie wyeliminujesz bo baza zwraca wtedy blad. Jedyne wyjscie to transakcja i sprawdzic a nastepnie dodac -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
mozna zrobic UPDATE i sprawdzic affected_rows. jesli rowne jest 0 to wtedy INSERTA. troszke wydajniejsze bo nie trzeba zawsze 2 zapytania (SELECT+INSERT).
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
@sopel Podaj konkretny przyklad bo nie bardzo Cie zrozumialem w czym to by mialo przyspieszyc.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
sorry, doczytalem dobrze watek i chodzi tylko o dodanie gdy nie istnieje w bazie. natomiast ja pisalem o sytuacji gdy chcemy dodac gdy nie istnieje lub zaktualizowac gdy istnieje (np. jak ma to miejsce piszac wlasnego handlera sesji).
standardowo : krok 1 - robisz SELECT i sprawdzasz czy rekord juz jest w bazie krok 2- wtedy jest INSERT lub UPDATE inna opcja krok 1 - robisz UPDATE krok 2 - if (affected_rows ==0) INSERT -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
He he no to teraz ok. Strasznie sie zdziwilem co napisales wczesnie i dlatego zapytalem. No ale inaczej efektywnie sie nie da. W bazach z mozliwosci uzycia PL/SQL pisze sobie funkcje ktore mi poszczegolne rzeczy realizuja na bazie danych, mniej odwolan leci do serwera, szybciej, bezpieczniej.
DODANE: Odnoscnie handlera sesji na Postgresie o Oraclu mam napisane na funkcji i steruje parametrami. (Jaki PL/SQL jest wspanialy hihihihi) Ten post edytował SongoQ 28.04.2005, 11:03:12 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:01 |