Trigger sql (after insert) w Oracle, czyli jak działa wyzwalacz + przykład #4 kurs PL/SQL

  Рет қаралды 8,145

nieinformatyk

nieinformatyk

Күн бұрын

Пікірлер: 48
@robydj5289
@robydj5289 2 жыл бұрын
Dziękuję z świetną serię o PL/SQL. masz prawdziwy talent pedagogiczny! Pracuję z bazami danych i Twoje filmiki są dla mnie manną z nieba!
@nieinformatyk
@nieinformatyk 2 жыл бұрын
Dziękuję, miło słyszeć :)
@barbaralewczuk9620
@barbaralewczuk9620 2 жыл бұрын
super odcinek. Talent pedagogiczny :)
@nieinformatyk
@nieinformatyk 2 жыл бұрын
dziękuje Barbara :)
@fatallny
@fatallny 4 жыл бұрын
Super, że wracamy do PL/SQL, kawa w rękę, łapka w górę i można oglądać :-)
@nieinformatyk
@nieinformatyk 4 жыл бұрын
Pierwszy komentarz pod filmem :) Możesz wybrać temat jednego z kolejnych odcinków - domyślam się, że to będzie coś z PL/SQL.
@fatallny
@fatallny 4 жыл бұрын
@@nieinformatyk A co powiesz na temat optymalizacji? Pokazałbyś, kilka zapytań które zwracają to samo, ale jednak mają inny czas wykonywania
@nieinformatyk
@nieinformatyk 4 жыл бұрын
@@fatallny okej, dopisałem do listy :)
@nieinformatyk
@nieinformatyk 4 жыл бұрын
@@fatallny Proszę bardzo: kzbin.info/www/bejne/raPKfJyci7Bjrck
@sawekstudia8276
@sawekstudia8276 4 жыл бұрын
Świetna robota Darku :D nie mogę się doczekać kolejnego odcinka
@nieinformatyk
@nieinformatyk 4 жыл бұрын
masz jaką konkretną tematykę dla kolejnego odcinka PL/SQL czy zdasz się na mnie?
@sawekstudia8276
@sawekstudia8276 4 жыл бұрын
@@nieinformatyk Cóż osobiście chciałbym dowiedzieć się czegoś o procedurach ale przyjmę wszystko :D
@nieinformatyk
@nieinformatyk 4 жыл бұрын
@@sawekstudia8276 dzięki, dodałem do listy :)
@nieinformatyk
@nieinformatyk 4 жыл бұрын
@@sawekstudia8276 Nadszedł czas na Twój odcinek :) Baw się dobrze: kzbin.info/www/bejne/d2jHd5WLppWql5o
@sawekstudia8276
@sawekstudia8276 4 жыл бұрын
@@nieinformatyk Coś pięknego. Miło że pamiętałeś :D
@AdamZuk1982
@AdamZuk1982 2 жыл бұрын
Kurcze, taka fajna funkcjonalna rzecz :). Dziękuję, pozdrawiam.
@nieinformatyk
@nieinformatyk 2 жыл бұрын
Prawda, wyzwalacze dają sporo funkcjonalności :)
@krzysztofm2433
@krzysztofm2433 Жыл бұрын
Nasunął mi się pomysł, że fajnie byłoby jeszcze dodać informację, które kolumny się zmieniły. Bo jeśli w tabeli jest np. 100 czy więcej kolumn to ciężko byłoby wyszukać gdzie jest zmiana.
@nieinformatyk
@nieinformatyk Жыл бұрын
Można dodać dodatkową kolumnę z informacją jaka operacja była wykonywana i jakie kolumny zmieniła, aczkolwiek w ramach jednej operacji UPDATE możesz zmienić 40 kolumn, więc przechowywanie tego w ten sposób nie będzie czytelne. Łatwiej napisać SELECTA WHERE old new i go zapisać jako skrypt lub generować automatycznie ze słownika z lista kolumn tabeli.
@merktor2090
@merktor2090 3 жыл бұрын
Dzięki za filmik.
@MrRodiego
@MrRodiego 3 жыл бұрын
Mój pierwszy trigger, dziękuję za lekcję! :-)
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Brawo :)
@damiankrasniewski4946
@damiankrasniewski4946 4 жыл бұрын
fajny materiał, kom dla zasięgu
@nieinformatyk
@nieinformatyk 4 жыл бұрын
Dziękuję za komentarz :)
@damiankrasniewski4946
@damiankrasniewski4946 4 жыл бұрын
@@nieinformatyk Mam pytanie. Sytuacja wygląda tak, w tabeli mam kilka kolumn ale wartość w żadnej z kolumn nie jest unikalna, wymyśliłem że przez concat() trzech kolumn uzyskam unikalną wartość która będzie mogła jednoznacznie identyfikować dany wiersz, dodanie kolumny przez alter i jej update nie stanowią problemu, chcę jednak żeby przy wgrywaniu nowych wierzy wartość tej kolumny w której mają być złączone nazwy 3-ech kolumn uzupełniała się sama, próbowałem stworzyć trigger ale noo, nie działa. Masz może jakiś pomysł jak to obejść? Dodam że chodzi mi o MySQL i po próbie stworzenie triggera wyrzuca błąd: "Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)"
@nieinformatyk
@nieinformatyk 4 жыл бұрын
@@damiankrasniewski4946 Sprawdź czy w mysql jest coś takiego jak kolumna wirtualna. W oracle bardzo łatwo to zrobić: oracle-base.com/articles/11g/virtual-columns-11gr1 Jak się nie da to pozostaje trigger. Twój komunikat błędu sugeruje problem z uprawnieniami :)
@damiankrasniewski4946
@damiankrasniewski4946 4 жыл бұрын
@@nieinformatyk dzięki, mam już uprawnienia i trigger działa, próbowałem wcześniej rozwiązania z "Generated Column" . Gdy do mojej tabeli dodałem "Generated Column" przyjmowała ona taką wartość jaką określiłem podczas dodawanie tej kolumny jednak dodawanie nowych wierszy powodowało że dla nowych wierszy wartość "Generated Column" była NULL Na szczęście trigger działa, dzięki za odpowiedź, może w przyszłości uda mi się skorzystać z drugiego rozwiązania
@grzegorzko55
@grzegorzko55 3 жыл бұрын
Czy zamiast pisania instrukcji warunkowych można by stworzyć 3 oddzielne triggery?
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Oczywiście, ale zalecaną praktyką jest sytuacja, że na jedno zdarzenie na tabeli uruchamia się jeden trigger. Przy większej ich liczbie trudniej zarządzać logiką i utrzymywać kod. No i musisz też zadbać o odpowiednią kolejność wywoływania się triggerów - czasami to ma znaczenie.
@grzegorzko55
@grzegorzko55 3 жыл бұрын
@@nieinformatyk Jasne.Chcialem się tylko oko upewnić czy zrozumiałem przekaz z filmiku.Btw bardzo klarowny przekaz.
@AnoNim-rk9uh
@AnoNim-rk9uh 4 жыл бұрын
Zrobiłbyś może odcinek w którym porównałbyś etl i hadoop
@nieinformatyk
@nieinformatyk 4 жыл бұрын
Dopisane do listy. Dziękuję za interesującą propozycję :)
@dariusz_82
@dariusz_82 6 ай бұрын
plpgsql nie ma INSERTING jako warunek mam tylko INSERT który wyświetla błąd "ERROR: column "insert" does not exist", jak to można zapisać w postgresql?
@nieinformatyk
@nieinformatyk 6 ай бұрын
Wujek Google twym przyjacielem :) stackoverflow.com/questions/35574517/what-is-postgresql-equivalent-of-inserting-from-oracle
@szymonlubinski1679
@szymonlubinski1679 2 жыл бұрын
Kom dla zasięgu pozdrawiam :D
@nieinformatyk
@nieinformatyk 2 жыл бұрын
dzięki :)
@DK-pf2dg
@DK-pf2dg 2 жыл бұрын
Czym sie różni trigger od rule i kiedy lepiej dany używać?
@nieinformatyk
@nieinformatyk 2 жыл бұрын
Co to jest rule? Chodzi Ci o constraint?
@DK-pf2dg
@DK-pf2dg 2 жыл бұрын
@@nieinformatyk Chodzi o reguły, w postgresie są
@filipgrydz
@filipgrydz Жыл бұрын
#zasieg
@nieinformatyk
@nieinformatyk Жыл бұрын
#dzięki :)
@sylwiazabielska1623
@sylwiazabielska1623 Жыл бұрын
Część, gdy wrzucam kod całego triggera do SQL Develope wyrzuca mi następujący błąd: Trigger AIUD_ARCHIWIZUJ compiled LINE/COL ERROR --------- ------------------------------------------------------------- 45/6 PLS-00049: niepoprawna zmienna wiązania "NEW.KOD_DEPARTAMENTU" 83/6 PLS-00049: niepoprawna zmienna wiązania "OLD.KOD_DEPARTAMENTU" 91/6 PLS-00049: niepoprawna zmienna wiązania "NEW.KOD_DEPARTAMENTU" 128/6 PLS-00049: niepoprawna zmienna wiązania "OLD.KOD_DEPARTAMENTU" Errors: check compiler log
@nieinformatyk
@nieinformatyk Жыл бұрын
A masz kolumnę kod departamentu w swojej tabeli?
@sylwiazabielska1623
@sylwiazabielska1623 Жыл бұрын
@@nieinformatyk Tak , CREATE TABLE "DIP"."PRACOWNICY_ARCHIWUM" ( "EVENT_DATE" DATE, "EVENT_TYPE" VARCHAR2(20 BYTE), "USER_NAME" VARCHAR2(20 BYTE), "OLD_ID" NUMBER, "OLD_IMIE" VARCHAR2(30 BYTE), "OLD_NAZWISKO" VARCHAR2(60 BYTE), "OLD_PESEL" VARCHAR2(11 BYTE), "OLD_PLEC" VARCHAR2(1 BYTE), "OLD_DATA_URODZENIA" DATE, "OLD_PENSJA" NUMBER, "OLD_KOD_DEPARTAMENTU" NUMBER, "NEW_ID" NUMBER, "NEW_IMIE" VARCHAR2(30 BYTE), "NEW_NAZWISKO" VARCHAR2(60 BYTE), "NEW_PESEL" VARCHAR2(11 BYTE), "NEW_PLEC" VARCHAR2(1 BYTE), "NEW_DATA_URODZENIA" DATE, "NEW_PENSJA" NUMBER, "NEW_KOD_DEPARTAMENTU" NUMBER ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ;
@nieinformatyk
@nieinformatyk Жыл бұрын
@@sylwiazabielska1623 a podaj jeszcze kod tworzący trigger :)
@sylwiazabielska1623
@sylwiazabielska1623 Жыл бұрын
@@nieinformatyk To kod z pliku pod filmem.
@nieinformatyk
@nieinformatyk Жыл бұрын
@@sylwiazabielska1623 Czy schemat gdzie tworzysz trigger ma uprawnienia do tabeli w schemacie DIP? Tabelę archiwum tworzysz w schemacie DIP. Nie wiem w jakim schemacie stworzyłaś tabelę pracownicy. Sprawdź też czy wszystkie te kolumny masz w tabeli pracownicy: bo wysłałaś DDL-kę tabeli pracownicy_archiwum :)
Co to jest i jak działa kursor w bazie danych?
25:58
nieinformatyk
Рет қаралды 10 М.
MySQL: TRIGGERS
16:50
Bro Code
Рет қаралды 142 М.
Indeks w bazie danych   co to jest i jak działa #62
16:35
nieinformatyk
Рет қаралды 27 М.
Pytania rekrutacyjne SQL(podchwytliwe) + odpowiedzi
15:44
nieinformatyk
Рет қаралды 1,6 М.
Kurs SQL 2: Co to jest baza danych? + obsługa sql developer
20:33
nieinformatyk
Рет қаралды 47 М.
Dlaczego indeks przyśpiesza wykonywanie zapytań SQL?
17:48
nieinformatyk
Рет қаралды 4,6 М.
Pętle w Programowaniu PL/SQL - Simple Loop, While Loop i For Loop
28:55
Solving one of PostgreSQL's biggest weaknesses.
17:12
Dreams of Code
Рет қаралды 221 М.