Могу ли я создать сгенерированный столбец в таблице A, который суммирует столбец в таблице B с таблицей A_id строки в таблице A?Подзапрос как сгенерированный столбец в mysql?
Предположим, у меня есть таблица семейств и таблица детей. Я хочу, чтобы возраст детей составлял для каждой семьи.
ALTER TABLE people.families
ADD COLUMN sumofages DECIMAL(10,2) GENERATED ALWAYS AS
(SELECT SUM(age) FROM people.children WHERE family_id = people.families.id) STORED;
ERROR 3102: Expression of generated column 'sumofages' contains a disallowed function.
Я не могу сохранить его как тип ВИРТУАЛЬНЫЙ. Что я здесь делаю неправильно?
ALTER TABLE people.families
ADD COLUMN sumofages DECIMAL(10,2) GENERATED ALWAYS AS
(SELECT SUM(age) FROM people.children WHERE family_id = people.families.id) VIRTUAL;
ERROR 3102: Expression of generated column 'sumofages' contains a disallowed function.
Я не знаю, какая функция запрещена. SUM, похоже, не так. Может быть, SELECT?
Я не думаю, что MySQL поддерживает то, что вы пытаетесь сделать. Вы были бы довольны заявлением 'UPDATE'? –
В настоящее время я использую суб-выбор. Я не хочу хранить данные на самом деле, у меня просто множество подвыборок, и я не мог найти окончательную документацию из MySQL, чтобы предположить, что она не поддерживается. В MariaDB документация предполагает, что она не поддерживается, и что сгенерированные выражения могут включать только данные из текущей строки. Я просто хотел быть уверенным, что у меня что-то не хватает. – user1955162