注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
ユニーク制約ではNULLは同じ値とみなされないので、複合ユニーク制約で、1個でもNULLになるカラムがあれ... ユニーク制約ではNULLは同じ値とみなされないので、複合ユニーク制約で、1個でもNULLになるカラムがあれば、書き込めてしまいます。MySQLでは知ってたんですが、そういえばPostgresだとどうなんだろうと思って、調べてみました。 結論 結論としては、標準化されたSQL規格でそう決まってるらしいので、MySQLでもPostgresでも同様に、複合ユニーク制約でNULLを含むと書き込めます。標準SQL規格を直接確認してないんですけども。標準SQL規格ってネットに公開されてたりしないのかな。探したけど見つからなかった。 一般に、制約の対象となる列について同じ値を持つ行が、テーブル内に1行を上回る場合は、一意性制約違反になります。 しかし、この比較では2つのNULL値は等価とはみなされません。 つまり、一意性制約があったとしても、制約対象の列の少なくとも1つにNULL値を持つ行を複数格納する
2016/05/25 リンク