mysql8でテーブルinfoは下記の通りになっています
CREATE TABLE `performance` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `number` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci, `name` text, `announce_year` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci, `announce_month` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci, `announce_day` text, `announce_day_rate` float DEFAULT NULL, `two_weeks_later_rate` float DEFAULT NULL, `two_weeks_change_rate` float GENERATED ALWAYS AS ((`two_weeks_later_rate` / `announce_day_rate`)) VIRTUAL, `nine_weeks_later_rate` float DEFAULT NULL, `nine_weeks_change_rate` float GENERATED ALWAYS AS ((`nine_weeks_later_rate` / `announce_day_rate`)) VIRTUAL, `note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci, `create_time` datetime DEFAULT CURRENT_TIMESTAMP, `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `unique_index` (`number`(4),`announce_year`(4),`announce_month`(2),`announce_day`(2)) ) ENGINE=InnoDB AUTO_INCREMENT=22721 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
sequel proで新規のレコードを作成しようとすると「The value specified for generated column 'two_weeks_change_rate' in table 'performance' is not allowed.」と言われてしまいます。
two_weeks_change_rateとnine_weeks_change_rateには何も入力していないですし、試しに手動で入力をしても同様のエラーが出て新規にレコードが作成できません。
これは何が原因なのでしょうか?
sqlのinsert文を実行した場合は普通に作成はできました。
あなたの回答
tips
プレビュー