Я немного искал и не могу найти ответ на этот вопрос. Я довольно новичок в MySQL, и это то, что я ранее написал как php-скрипт для обновления отдельных таблиц, но я предпочел бы, чтобы он автоматически обновлялся в базе данных при изменении таблицы.
Когда я обновляю таблицу с помощью скрипта Google, мне требуется около 6 разных таблиц для обновления из разных строк в основной таблице по дате, а для каждой таблицы требуются данные из другого столбца.
Я знаю, что это неправильный способ сделать это, но мне нужен триггер, чтобы эффективно сделать следующее;
CREATE TRIGGER dash_1
ON global_summary AFTER UPDATE
UPDATE widget_dash_2 (date, metric)
WHERE inc_id=100 SELECT date, volume
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 1))
UPDATE widget_dash_2 (date, metric)
WHERE inc_id=101 SELECT date, volume
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 8))
Это будет для одного из столбцов "том" из таблицы "global_summary", мне нужно добавить еще 5 обновлений, таких как;
UPDATE widget_dash_3 (date, metric)
WHERE inc_id=100 SELECT date, score
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 1))
UPDATE widget_dash_3 (date, metric)
WHERE inc_id=101 SELECT date, score
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 8))
Где "оценка" - это еще один столбец в таблице "global_summary".
Любое руководство будет высоко ценится. Я искал несколько советов по этому вопросу уже несколько дней, и это только запутало меня.
Я предполагаю, что мне нужно что-то сделать с массивами и сначала получить все данные из основной таблицы, но как я могу тогда это разделить?
@ липкий бит,
К сожалению, я должен поместить эти данные в эти небольшие таблицы, поверьте мне, я бы предпочел просто извлечь их из global_summary напрямую.
CREATE TABLE `global_summary` (
`id` int(11) DEFAULT NULL,
`date` date DEFAULT NULL,
`volume` int(10) DEFAULT NULL,
`volume_problem` int(10) DEFAULT NULL,
`removed` int(10) DEFAULT NULL,
`score` int(10) DEFAULT NULL,
`error` int(10) DEFAULT NULL,
`total` int(10) DEFAULT NULL,
`previous` int(10) DEFAULT NULL,
`entryID` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Все таблицы widget_dash;
CREATE TABLE `widget_dash_2` (
`inc_id` int(11) NOT NULL,
`date` date DEFAULT NULL,
`metric` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Спасибо за ваш отзыв, и да, я, вероятно, путал UPDATE с INSERT.