如果行的'isActive'值等于1,我需要使img_path列中的默认值等于'images / defaultactive.png'。正如您在图片中看到的,img_path的默认值是无论isActive列的值如何都是一样的。
我试过这个,但得到语法错误:
ALTER TABLE my_table ALTER COLUMN img_path SET DEFAULT 'images\/defaultactive.png' WHERE isActive = 1;
这可以设置此规则吗?同样,img_path列的默认值需要依赖于isActive列的值(0或1)。 如果isActive = 0,则img_path需要等于'images / soldico1.png',如果isActive = 1,则等于'images / defaultactive.png'。
我是mysql的新手,所以请尽量保持简单!
答案 0 :(得分:1)
Mysql中没有这样的功能。您最好在插入行的应用程序中执行此“逻辑”。
或者您可以使用默认的“空”,然后“显示”代码决定使用什么
if (empty($img_path))
$img_path = ($isActive)?'active.png':'solico.png';
在“显示”时间而不是在数据库中执行此操作的另一个原因。如果活动列发生更改,可能默认情况下会发生更改,因此它会使“更新”语句相当混乱,在显示时执行,从而避免必须保持数据库同步。