mysql nameを使用してテーブルを作成しました。id、name、lastname、dobタイプ)、性別、都市と私はdob(生年月日)に入力する値が18より大きいようにします。この制約を設定するにはどうすればよいですか追加する方法mysqlの生年月日フィールドから計算した年齢をチェックし、年齢が18歳を超えていることを確認する制約を追加する
0
A
答えて
0
MySQLはチェック制約をサポートしていません。したがって、MySQLでこれを行う唯一の方法は、トリガを作成するか、またはストアドプロシージャに挿入をラップすることです。
あなたが使用する特定のロジックは次のとおりです。
dob <= curdate() - interval 18 year
ので、他のほとんどのデータベースでは、このようなものになります。
alter table t add constraint chk_t_dob check (dob <= curdate() - interval '18' year);
を(注:日付操作は、データベースによって異なります。 )
+0
...または単にクエリを使用する – Strawberry
0
これを次のように考えてください:2017年6月24日...
CREATE TABLE dobs(dob DATE NOT NULL);
INSERT INTO dobs (dob)
SELECT '2012-01-01' x FROM (SELECT 1) a WHERE FLOOR(DATEDIFF(NOW(),'2012-01-01')/365.24) >= 18;
INSERT INTO dobs (dob)
SELECT '1975-01-01' x FROM (SELECT 1) a WHERE FLOOR(DATEDIFF(NOW(),'1975-01-01')/365.24) >= 18;
INSERT INTO dobs (dob)
SELECT '1999-06-25' x FROM (SELECT 1) a WHERE FLOOR(DATEDIFF(NOW(),'1999-06-25')/365.24) >= 18;
INSERT INTO dobs (dob)
SELECT '1999-06-24' x FROM (SELECT 1) a WHERE FLOOR(DATEDIFF(NOW(),'1999-06-24')/365.24) >= 18;
SELECT * FROM dobs;
+------------+
| dob |
+------------+
| 1975-01-01 |
| 1999-06-24 |
+------------+
関連する問題
- 1. 年齢から生年月日を計算する
- 2. sqlチェック制約の生年月日からの年齢
- 3. angle:生年月日の年齢を計算する
- 4. パワークエリーの日付フィールドから年齢および年齢バケットを計算する
- 5. 年、月、日、時、分、秒で年齢を計算する
- 6. エクセルVBA:計算年齢、私は与えられた誕生日から年齢を計算したい
- 7. 計算年齢と月
- 8. 生年月日を使用している年齢グループ
- 9. 年月の列を使用して年齢を計算する方法は?
- 10. 年と月に基づく年齢を計算するSQL
- 11. 年齢から年齢層に加入
- 12. 生年月日を使用しているユーザーの平均年齢を計算する方法
- 13. 年齢を18歳以上、今日の日付から数えて
- 14. 年齢計算
- 15. 計算年齢
- 16. 生年月日から年齢を計算して保存する必要があります
- 17. SASは年齢から生年月日を見つけます
- 18. 生年月日を取得するロジック年齢から年月日を表現します
- 19. (年齢順)アライリストに追加
- 20. @Formulaで誕生日からの年齢を計算する
- 21. xsltの年齢を誕生日から計算する
- 22. javascriptを使用して、指定された年齢からの生年月日を計算します。
- 23. 現在の年齢から現時点までの生年月日を計算する方法
- 24. Excelのスプレッドシートの生年月日から年齢を検索
- 25. 現在の年 - 誕生年を計算してPythonを使用して年齢計算を作成する
- 26. 生年月日から年齢を計算する(カレンダーを使用する)IN Jsf
- 27. 入力と日付のオブジェクトから年齢を計算する
- 28. 年齢計算 - タイムスタンプフィールド
- 29. Podio年齢計算
- 30. 生年月日から年齢をタイプ2を使って計算するには
何を試しましたか?どのように失敗しましたか? –