1

如果行的值等于 1 ,我需要使img_path列中的默认值等于 1。如图所示,无论列的值如何,默认值都是相同的。images/defaultactive.pngisActiveimg_pathisActive

我试过这个,但得到语法错误:

ALTER TABLE my_table ALTER COLUMN img_path SET DEFAULT 'images\/defaultactive.png' WHERE isActive = 1;

这可以设置这个规则吗?同样,img_path 列的默认值需要依赖于 isActive 列的值(0 或 1)。 img_path需要等于images/soldico1.pngifisActive = 0和等于images/defaultactive.pngif isActive = 1

我是 MySQL 新手,所以请尽可能简单!

4

1 回答 1

1

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

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

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

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

于 2013-11-08T21:56:14.383 回答