Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wartosc default z innej tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
pr0kt0r
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ś?
droslaw
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.
mortus
Ba, innego rozwiązania poza TRIGGER-em nie ma.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.