Нельзя установить значение по умолчанию для значения в другом столбце. Вместо этого, если ваш столбец NOT NULL, вы можете изменить его на NULL и установить значение по умолчанию NULL. Затем, когда вы выберете его, используйте это:
SELECT IFNULL(message_reference_id, message_id) AS message_reference_id
FROM your_table
Вы могли бы даже поставить это в поле зрения.
В качестве альтернативы вы можете создать триггер , который обновляет значение при вставке.