Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wartosc default z innej tabeli
pr0kt0r
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 1.12.2006

Ostrzeżenie: (0%)
-----


Witam!

Tworzę tabele w bazię danych która ma np taka strukturę

  1. id int(4) NOT NULL AUTO_INCREMENT,
  2. nama varchar(255) DEFAULT 'Domyslna'


i chcę zrobić coś takiego aby wartość DEFAULT dla pola name była pobierana z innej tabeli np.

  1. Tabela konfiguracje:
  2. domyslna_nazwa varchar(255) NOT NULL



Pomoże ktoś?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
droslaw
post
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 33
Dołączył: 10.05.2011
Skąd: Krak

Ostrzeżenie: (0%)
-----


Możesz założyć trigger na tabele w której chcesz mieć 'domyślną wartość'.
Tak wygląda przykładowy kod:
  1. DELIMITER ;;
  2. DROP TRIGGER IF EXISTS before_insert_test;;
  3. CREATE TRIGGER before_insert_test
  4. BEFORE INSERT ON test -- wykonywany przed wstawieniem nowego wiersza do tabeli test
  5. FOR EACH ROW
  6. BEGIN
  7. DECLARE temp VARCHAR(255);
  8. IF NEW.domyslna_nazwa IS NULL THEN -- jeśli pole domyslna_nazwa nie zostało podane lub jest ustawione na NULL wtedy:
  9. SELECT name INTO temp FROM konfiguracje WHERE id=jakis_id; -- przypisz do zmiennej temp wartość pobraną z tabeli konfiguracje
  10. SET NEW.domyslna_nazwa = temp; -- przypisz wartość temp do nowego pola domyslna_nazwa
  11. END IF;
  12. END;;
  13. DELIMITER ;

Ten wyzwalacz zapewni że jeśli w instrukcji insert nie zostanie podana wartość pola domyslna_nazwa lub zostanie podana wartość NULL, zostanie tam wstawiona wartość z tabeli konfiguracje.
Takie rozwiązanie przychodzi mi do głowy.

Ten post edytował droslaw 6.01.2012, 17:02:53
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Ba, innego rozwiązania poza TRIGGER-em nie ma.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 04:45