Есть триггер, который копирует столбцы из одной таблицы в другую.
Как присвоить имя таблицы динамической переменной @nametable
? Каждый день имя таблицы меняется в зависимости от текущей даты.
Пробовал делать так:
USE dbo;
DROP TRIGGER IF EXISTS `update_test`;
GO
DELIMITER |
CREATE TRIGGER `update_test` AFTER INSERT ON `hello_send`
FOR EACH ROW
BEGIN
DECLARE nametable VARCHAR(128);
SET @nametable =(DATE_FORMAT(NOW(),"%d%m%Y_v"));
INSERT INTO `dbo`.`nametable` SET
`TIME_` =NEW.`recorded`,
`P1` = NEW.`value1`
ON DUPLICATE KEY UPDATE
`TIME_` = NEW.`recorded`,
`P1` = NEW.`value1`;
END;
Выдает ERROR 1146: Table 'dbo.nametable' doesn't exist
.
Попробовал сделать внутри процедуры
DROP PROCEDURE IF EXISTS dinamicTable;
DELIMITER $$
CREATE PROCEDURE dinamicTable()
BEGIN
SET @nametable =(DATE_FORMAT(NOW(),"%d%m%Y_v"));
SET @stmt = CONCAT(
'CREATE TRIGGER ''update_test'
'AFTER INSERT ON' 'hello_send'
'FOR EACH ROW
BEGIN
INSERT INTO ',@nametable ,'SET' 'TIME_=NEW.recorded, P1 = NEW.value1' 'ON DUPLICATE KEY UPDATE' 'TIME_ = NEW.recorded, P1 = NEW.value1');
PREPARE stmt5 FROM @stmt;
EXECUTE stmt5;
DEALLOCATE PREPARE stmt5;
END$$
DELIMITER ;
Получаю ошибку Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''update_testAFTER INSERT ONhello_sendFOR EACH ROW BEGIN INSERT INTO 04122017' at line 1 0.000 sec
Пожалуйста ткните носом как надо, SQL изучаю две недели и больше недели вожусь с данной, казалось бы банальной проблеммой.
Вопрос?
Если получится сделать в процедуре как тогда вызывать ее при добавлении новой строки в таблицу hello_send
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть множество решений как преобразовать дату формата unix в нормальный вид при запросе в базуНо вот ответа как сделать обратно я не нашел
Я заметил, что при создании нового объекта класса Quaternion в конце списка параметров есть параметр "w"За что он отвечает?
Решил вытянуть новости с определённой темы форума, что не составило трудаНо возник вопрос, как изменить свойство pubDate на 24х часовой формат