![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
witam,
od jakiegoś czasu buduję małą bazę danych w firmie. Baza jest na Mysqlu, a jako frontend korzystamy z darmowago BASE pakietu libreoffice. Co jakiś czas napotykam na problem, ale jak do tej pory google pomagało. Niestety rozwiązania mojego aktualnego problemu nigdzie nie mogę znaleźć. Chciałbym aby przy dodawaniu nowego rekordu (np. nowego produktu) w kolumnie "dodal" automatycznie uzupełniał się login użytkownika, który dodał dany produkt. Udało mi się zrobić automatyczne dodawanie daty dodania rekordu poprzez ustawienie kolumny domyślnie jako CURRENT TIMESTAMP. Czy tutaj rozwiązanie jest podobne? Proszę o jakąkolwiek wskazówkę. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zapisujesz sobie ID użytkownika który dodaje, a potem przy wyświetlaniu JOIN z kolumna uzytkownika
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za odpowiedź, alenie do końca rozumiem...skoro mam użyć polecenia JOIN to znaczy że jeśli baza ma kilku użytkowników to istnieje jakaś tabela z nimi? I co znaczy zapisać sobie ID? Można prosić w prostszych słowach?(IMG:style_emoticons/default/smile.gif)
jednak jest taka tabela, właśnie wyczytałem o tym:) mysql.user . Ale dalej nie wiem jaką relacją miałbym ją połączyć z moją tabelą? Nie jest tu czasami potrzebny TRIGGER aby rozwiązać mój problem? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
USER() + SUBSTRING_INDEX() i dostaniesz nazwę użytkownika.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
próbuję, próbuję i nic...
Czy to nies tak takie coś nie działa. Nie działa również gdy zamienię CURRENT_USER na USER. Czy to nie jest tak że obydwa te wyrażenia są funkcjami i nie można ich ustawiać jako wartości domyślne? Jeśli tak to jak stworzyć kolumnę, która będzie zawierałą login użytkownika bazy, który dodał konkretny rekord? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
działa, dziękuje za pomoc. Dodałem jeszcze SUBSTRING_INDEX żeby został sam login:
tylko tak teraz sobie myślę...użytkowników w bazie mam np. jan_wrobel. Nawet nie sprawdzałem, ale podejrzewam że nazwa użytkownika Jan Wróbel odpada(spacje, polskie litery itp). Może to już czepianie się ale można zrobić coś żeby był wyświetlany Jan Wróbel, a nie jan_wrobel? CASE WHEN przychodzi mi do głowy, ale przy każdym nowym użytkowniku trzeba byłoby aktualizować trigger... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Możesz zrobić sobie tabelkę z użytkownikami
table_users username | show -------------------- jak_kowalski | Jan Kowalski i wtedy trigger pobierający wartość z tabeli. Dodajesz tylko sobie do tej tabelki wyświetlanie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
ale to chodzi o wykorzystanie CASE_WHEN? O takie coś?
to jakaś bzdura to co napisałem...nie ma tu nigdzie informacji z jakiej tabeli pochodzą kolumny username i show... Ten post edytował mihmih 5.06.2015, 14:26:04 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
SET NEW.kto_dodal = (SELECT show FROM tabela_userow WHERE username = SUBSTRING_INDEX ( USER(), '@', 1))
Coś w ten deseń. I Musisz stworzyć NOWĄ tabelę z zamiennikami użytkowników z bazy do wyświetlania. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
działa, jeszcze raz dziękuję za pomoc.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 02:31 |