![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
hej, czy jest mozliwe aby dla danego pola ustawic jako wartosc default value = inne pole?
normalnie jak chce dodac default value to wystarczy taki sql:
a ja bym chciala cos takiego:
czyli za kazdym razem jak bede robila insert i nie podam wartosci dla 'name', to wstawi sie tam wartosc z pola 'main_name' czy takie cos jest w ogole mozliwe? pzdr, misty |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
I tak i nie.
Nie nie jest możliwe. Tak, jest możliwe tworząc trigger na tabeli, który będzie wypełnił drugie pole czym ci się zamarzy. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
ale z triggerem to jest chyba tak, ze ja nie moge zrobic 'trigger after insert' na tej samej tabeli? czyli jesli robie insert do tabeli A, to jest tak trigger wywolywany 'after insert'? to chyba musi byc wtedy tak, ze ten trigger moze byc wywolany ale na tabeli B? dobrze mysle? pamietam ze kiedys wlasnie mialam z tym problem i wyszlo ze nie moge na tej samej tabeli.. mozliwe ze to byl trigger na update, nie pamietam dokladnie.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ale w triggerze będziesz robiła update. A trigger wywoływać masz na insert - więc chyba powinno być ok.
Ale to piszę chyba, bo sam nie jestem pewien a nie chce mi się sprawdzać ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Niestety w ciele TRIGGERa nie można wykonywać zapytania zmieniającego zawartość tabeli (UPDATE, INSERT, itp.), która tego TRIGGERa wywołuje. Można natomiast przed wstawieniem nowych (NEW) wartości sprawdzić je i ewentualnie zmodyfikować:
Ten post edytował mortus 3.08.2011, 15:30:43 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak czy siak trigger pozostaje
![]() Dzięki mortus za dokładniejsze wyjaśnienie. Jak już pisałem z triggerów nie jestem zbyt pewny ![]()
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Proszę bardzo. Kiedyś miałem z tym problem, to teraz już wiem.
Innego sposobu na rozwiązanie problemu nie ma, chyba że w PHP lub tym podobnym. Pozdrawiam ![]() Ten post edytował mortus 3.08.2011, 15:40:24 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
mortus, probowalam wykonac tego trigger'a aby zobaczyc jak to dzialac bedzie i czy mi to wystarczy, ale Twoj sql jest bledny. Niestety na takim triggerze:
phpmyadmin mowi mi:
ten blad to mi sie kojarzy z apostrofami, no ale je usunelam.. ja sie na triggerach za bardzo nie znam, ale z tego co pamietam to wyglada mi to na ok sql'a, dlatego nie mam za bardzo pomyslu co tu moze byc nie tak. A moze Tobie rzuca sie cos w oczy? pzdr |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Brakuje END IF i END, a także średnika ;:
EDIT No i wyżej nie użyłem apostrofów, tylko gravisów (`). Ten post edytował mortus 4.08.2011, 06:50:35 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
z END probowalam bo kojarzylam ze powinno byc, ale nie pamietalam o END IF. Niemniej jednak, phpmyadmin caly czas sie czepia!
dostaje:
i krzyzyk mi stawia pomiedzy linijkami IF NEW.test_id2 IS NULL THEN Nie mam pojecia dlaczego tak jest, moze to wina phpmyadmin? Niestety nie mam dostepu przez konsole do mysql'a, mam wystawiony dostep jedynie przez phpmyadmin.. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
No tak. W phpMyAdminie trzeba jeszcze użyć DELIMITERa:
Ten post edytował mortus 4.08.2011, 10:55:27 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
dokladnie o to mi chodzilo, dzieki wielkie!!
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:31 |