На MySQL 5.5.20 с таблицами InnoDB я воспроизвел вашу ситуацию в упрощенном тесте.оба, вставка с использованием результата из таблицы триггеров, которая ссылается на новый ряд строк, и прямая вставка с использованием НОВЫХ значений работали нормально
CREATE TABLE test1(a1 INT NOT NULL auto_increment, b1 INT, PRIMARY KEY (a1) );
CREATE TABLE test2(a1 INT, b1 INT);
CREATE TABLE test3(a1 INT, b1 INT);
DELIMITER ;;
CREATE TRIGGER testAI AFTER INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a1 = NEW.a1, b1 = NEW.b1;
INSERT INTO test3 ( a1, b1 ) SELECT a1, b1 FROM test1 WHERE a1 = NEW.a1;
END;
;;
DELIMITER ;
Запустить триггер
INSERT INTO test1 (b1) VALUES (1),(2),(3);
Вставить непосредственноиз НОВЫХ значений
mysql> SELECT * FROM test2;
+------+------+
| a1 | b1 |
+------+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+------+------+
3 rows in set (0.00 sec)
Вставлено из результата SELECT
mysql> SELECT * FROM test3;
+------+------+
| a1 | b1 |
+------+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+------+------+
3 rows in set (0.00 sec)
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.5.20 |
+-----------+
1 row in set (0.00 sec)
Так что это работает как для auto_increment, так и для явно вставленных значений.Ваша проблема должна быть где-то еще