2013-03-14 3 views
0

У меня есть 2 таблицы идентичны (100% идентичны),MySQL запускает копирование всех значений полей в другую таблицу, как?

DELIMITER $$ 

CREATE 
/*[DEFINER = { user | CURRENT_USER }]*/ 
TRIGGER `db`.`new_user` AFTER INSERT 
ON `db`.`user` 
FOR EACH ROW BEGIN 
INSERT INTO db2.`users` COPY ALL INSERTED DATA 
END$$ 

DELIMITER ; 

Как следует запрос INSER выглядеть? Должен ли я указывать все имена полей по одному?

+0

либо явно указать каждый столбец в ' VALUES' инструкции 'INSERT', иначе используйте' INSERT ... SELECT' при фильтрации по 'NEW.primary_key'. – eggyal

+1

Это тот же вопрос: http://stackoverflow.com/questions/57168/how-to-copy-a-row-from-one-sql-server-table-to-another дает отличный ответ – Lainezor

ответ

1

Поскольку NEW не является идентификатором строки, а синтаксический способ отнесения к определенным столбцов в строке манипулируют с помощью триггера, необходимо указать имена столбцов

INSERT INTO db2.`users` VALUES(NEW.id, NEW.username, ...);