🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

2回答

876閲覧

MySQL5.7.26でGenerated Columnのようなもの

Take_it

総合スコア357

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2019/11/16 14:27

MySQLにおいて、既存のカラムの日時から計算した結果のカラムを新たに作りたいと考えています。

Generated Columnを使えればいいのですが、MySQLのバージョンは
5.7.26 - MySQL Community Server (GPL)
で、これを変更することは現状ではできません。
Generated Columnは5.7.6以降だったと記憶しています。。

5.7.26でGenerated Column のようなことを実現するのは不可能でしょうか・・・?

一度の処理で300人×30日=9000件のデータを処理する都合上、読み出し時に一斉に計算すると重くなるため、データ登録時に計算を行いたいと思っています。
また、既に2万件くらいデータが存在しているため、登録時にPHP側で計算ではなく、GeneratedColumnのようにMySQL側で逐次やっといてくれるのが理想です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ここら辺かな?

以下引用

If your earlier version of MySQL does not support generated columns, then you'll have to compute that column at the time you query. One option would be a view:

CREATE VIEW yourView AS (
SELECT *, COALESCE(CONCAT(employee_name, '^')) AS employee_name_generator
FROM employee
)

MySQL does not support materialized views (directly). So, if you really needed the behavior of a materialized view, you would have to do something like create a temporary table using the select logic in the view I gave above.

投稿2019/11/16 14:32

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyoya0819

2019/11/16 14:33

英語で調べてみると結構出てくるのでお試しください。
guest

0

ベストアンサー

Generated Columnを使えればいいのですが、MySQLのバージョンは

5.7.26 - MySQL Community Server (GPL)
で、これを変更することは現状ではできません。
Generated Columnは5.7.6以降だったと記憶しています。。

そもそも、5.7.26は5.7.6より新しいのですが。

投稿2019/11/16 22:26

maisumakun

総合スコア145975

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/11/16 22:30

バージョン番号は通常の小数ではなく、小数点で区切られた各部分がそれぞれ進んでいきます。 5.7.6→5.7.9→5.7.10→5.7.26のように進んでいくので、5.7.26のほうが新しいバージョンです。
Take_it

2019/11/17 02:56

! ありがとうございます。お恥ずかしい限りです。
kyoya0819

2019/11/17 04:51

確かに!気付きませんでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問