2020-09-28 brew invalid 'depends_on macos' / MySQL Unique KeyのNULLの扱い / MySQL Generated index
invalid ‘depends_on macos’ value: “>= :leopard”
下記エラーの対処方法について
$ brew uninstall sequel-pro
Error: Cask 'sequel-pro' definition is invalid: invalid 'depends_on macos' value: ">= :leopard"
以下のエラーで削除も更新も出来ない場合
Error: Cask 'eclipse-jee' definition is invalid: invalid 'depends_on macos' value: ":leopard"
以下を実行する
/usr/bin/find "$(brew --prefix)/Caskroom/"*'/.metadata' -type f -name '*.rb' -print0 | /usr/bin/xargs -0 /usr/bin/sed -i '' '/depends_on > macos:/d'
MySQL Unique Key の NULL の扱い
論理削除カラムと一緒にUnique Key 設定しても論理削除カラムがNULLだとUniqueにはならないよ、という話。
mysql> create unique index idx ON users(email, deleted_at);
mysql> select * from users;
+------+-------+---------------------+
| id | email | deleted_at |
+------+-------+---------------------+
| 1 | x | NULL |
| 1 | x | NULL |
| 1 | x | 2020-09-25 00:00:00 |
+------+-------+---------------------+
MySQL Generated index
代わりに Generated Index なるものが使えるっぽい。
部分Indexを使ってユニーク制約をかける例
CREATE UNIQUE INDEX uidx_email ON account(email) WHERE del_flg = 0;
MySQL5.7以降、MySQLでGenerated columnを使えるようになりました。 これは、SQLによる演算結果をカラムとして見せる手法です。 まが、このGenerated columnにはindexを追加することができます。