※ ChatGPTを利用し、要約された質問です(原文:テーブルに空文字を入力させない方法)
テーブルに空文字を入力させない方法
このQ&Aのポイント
MYSQLでテーブルに空文字を入力しない方法を紹介します。
テーブルの特定の列に対して、入力制約を設定することで空文字の入力を禁止することができます。
具体的には、NOT NULL制約を設定したり、トリガーを使用して空文字の挿入を制限することができます。
MYSQLで下記のようなテーブルがあります。codeが主キーになっています。
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| day | varchar(255) | YES | | NULL | |
| time_mm | varchar(255) | YES | | NULL | |
| time_ss | varchar(255) | YES | | NULL | |
| id | varchar(255) | YES | | NULL | |
| code | varchar(255) | NO | PRI | NULL | |
| stock | varchar(255) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
selectでデータを引っ張ってくると下記のようになります。
+------+---------+---------+-------+------+-------+
| day | time_mm | time_ss | id | code | stock |
+------+---------+---------+-------+------+-------+
| NULL | NULL | NULL | dd | | NULL |
| 1111 | 2222 | 3333 | 4444 | 1234 | 6666 |
| 11 | 22 | 33 | 44 | 4649 | 66 |
| 111 | 222 | 333 | 444 | 5963 | 666 |
| NULL | NULL | fdfd | fdfd | fd | NULL |
+------+---------+---------+-------+------+-------+
codeの一番上が空文字列になっているので、テーブルにデータが入っていると思うのですが、空文字も入力不可にさせたいです。
どのようにすれば実現させることができるでしょうか?
お礼
ご回答ありがとうございます。check制約というものでできるんですね! と思って調べてみたら、mysqlではサポートされてないとのこと・・・かわりにトリガーで代用できるみたいです! http://blog.kimuradb.com/?eid=710163 ご回答ありがとうございます!!