Một cách tốt hơn sẽ là tạo một trình kích hoạt. Đọc thêm về trình kích hoạt trên tài liệu Mysql . Câu trả lời tương tự để biết thêm chi tiết có thể được tìm thấy tại đây .
Đối với câu hỏi này, đây là cách tôi triển khai trình kích hoạt.
delimiter #
create trigger nonEmptyString
before insert
on users
for each row
BEGIN
IF NEW.balance = '' THEN
SELECT COLUMN_DEFAULT INTO @def
FROM information_schema.COLUMNS
WHERE
table_schema = 'Schema Name'
AND table_name = 'users'
AND column_name = 'balance';
SET NEW.balance = @def;
END IF;
end#
delimiter ;