teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

変更

2019/10/31 09:19

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,16 +1,2 @@
1
- generated column を使うはどうしょうか?
1
+ 質問が全く別ものに変わったの、回答も全く別のものに変えます。
2
- 制約を付けるのではなく、get_result_at が NULL でない時に自動的に true になる列を作るということです。
3
-
4
- [Mablomy: CHECK constraint for MySQL - NOT NULL on generated columns](http://mablomy.blogspot.com/2016/04/check-constraint-for-mysql-not-null-on.html)
5
-
6
- ```
7
- create table table1 (
8
- get_result_at datetime,
9
- result boolean
10
- as (if(get_result_at is null, false, true))
11
- virtual not null)
12
- ```
13
-
14
- 参考:
15
- [MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.4 制御フロー関数](https://dev.mysql.com/doc/refman/5.6/ja/control-flow-functions.html)
2
+ result null の時、get_result_at は意味を成さないのでどんな値であっても問題ありません。したがって、get_result_at not null 属性で作り、適当な値(datetime のデフォルト値など)を入れてください。
16
- [MySQL :: MySQL 5.7 Reference Manual :: 13.1.18.8 CREATE TABLE and Generated Columns](https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html)