我可以在mysql中设置'条件'默认值吗?

时间:2013-11-08 21:37:16

标签: mysql database default alter

如果行的'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的新手,所以请尽量保持简单!

1 个答案:

答案 0 :(得分:1)

Mysql中没有这样的功能。您最好在插入行的应用程序中执行此“逻辑”。

或者您可以使用默认的“空”,然后“显示”代码决定使用什么

if (empty($img_path)) 
   $img_path = ($isActive)?'active.png':'solico.png';

在“显示”时间而不是在数据库中执行此操作的另一个原因。如果活动列发生更改,可能默认情况下会发生更改,因此它会使“更新”语句相当混乱,在显示时执行,从而避免必须保持数据库同步。