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