Вы не можете сделать это внутри триггера, потому что триггер не может выполнять запросы к таблице, по которой он был запущен.
Одним из решений будет создание хранимой процедуры, которую ваше приложение будет вызывать, когда это необходимовставить данные. Затем процедура вставит две записи.
Что-то вроде:
DELIMITER $$
CREATE PROCEDURE my_insert_proc(
IN p_accountID INT,
IN p_deviceID INT,
IN p_timestamp DATETIME,
IN p_col1 VARCHAR(20),
IN p_col2 VARCHAR(50)
)
BEGIN
DECLARE p_accountID_new INT;
-- "regular" insert
INSERT INTO mytable(accountID, deviceID, timestamp, col1, col2)
VALUES(p_accountID, p_deviceID, p_timestamp, p_col1, p_col2);
SET p_accountID_new = ... -- whatever you need
-- "clone" insert
INSERT INTO mytable(accountID, deviceID, timestamp, col1, col2)
VALUES(p_accountID_new, p_deviceID, p_timestamp, p_col1, p_col2);
END
$$
DELIMITER ;
Предполагается, что в таблице есть два дополнительных столбца после столбцов первичного ключа. Вы можете адаптировать это в соответствии с вашей структурой таблицы.