1

行の値が 1 の場合、列のデフォルト値を にimg_path等しくする必要があります。図でわかるように、列の値に関係なく、のデフォルト値は同じです。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) に依存する必要があります。 ifおよびifと等しいimg_path必要があります。 images/soldico1.pngisActive = 0images/defaultactive.pngisActive = 1

私は MySQL を初めて使用するので、できるだけシンプルにしてください。

4

1 に答える 1

1

Mysql にはそのような機能はありません。行を挿入するアプリケーションでこの「ロジック」を実行するのが最善です。

または、デフォルトの「空」を使用して、「表示」コードが何を使用するかを決定することもできます

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

データベースではなく「表示」時にこれを行うもう1つの理由。アクティブな列が変更されると、おそらくデフォルトが変更されるため、「更新」ステートメントがかなり面倒になり、表示時に行うことで、データベースの同期を維持する必要がなくなります。

于 2013-11-08T21:56:14.383 に答える