通常、これはCHECK制約を使用して行います:
foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')
バージョン8.0より前では、MySQLは制約のサポートが制限されていました。 MySQLリファレンスマニュアル から :
CHECK句は解析されますが、すべてのストレージエンジンで無視されます。
古いバージョンに固執する必要がある場合は、トリガー を使用してください。 回避策として、人々が指摘しているように。
将来的には、PostgreSQLを確認する ことをお勧めします。 、データの整合性をより適切にサポートしていると見なされます(その他 )多くの人 。