2016-04-25 5 views
0

У меня есть 2 таблицы, которые я хочу объединить с данными. id - это мое ключевое поле (инкрементное и четкое). описание таблицы 1 и таблицы 2, например: id - name - valuemysql inserting data to table, duplicate

Я хочу вставить все данные таблицы 2 в таблицу 1, они имеют разные данные, но в некоторых строках одинаковый идентификатор.

поэтому, когда я пытаюсь: INSERT INTO ladatabase.table2 SELECT * из ladatabase.table1;

Я получаю дубликат ошибки ввода.

, пожалуйста, помогите мне предложить, как я могу его решить и объединить данные с разными значениями id для новых данных.

Alex.

+0

Вы должны принять ответ, который вы решили решить вашу проблему. – Barmar

ответ

0

здесь 2 способа:

первый можно использовать, если идентификатор AUTO INCREMENT

INSERT INTO ladatabase.table2 
SELECT '', name, value from ladatabase.table1; 

или вы найдете первый свободный идентификатор и добавить его

INSERT INTO ladatabase.table2 
SELECT id+555 , name, value from ladatabase.table1; 
+0

спасибо за помощь –

0

Нет вставки всех полей (исключить 'id'-поле от SELECT):

INSERT INTO ladatabase.table2 SELECT name,value from ladatabase.table1; 
+0

спасибо за помощь –

+0

Кстати, если я получил около 30 полей за моей таблицей, мне нужно распечатать их все или есть способ набрать команду только с поля исключенного идентификатора ? –

+0

Используйте поиск в stackoverflow: http://stackoverflow.com/search?q=Select+all+columns+except+one+in+MySQL%3F –

0

Вам нужно скопировать все, кроме идентификатора, и назначить новые идентификаторы. Вы должны указать все остальные столбцы явно. Если оставить столбец идентификатора, он получит его значение по умолчанию, которое является последовательным идентификатором для поля auto_increment.

INSERT INTO table2 (col2, col3, col4, ...) 
SELECT col2, col3, col4, ... 
FROM table1 
+0

спасибо за помощь! –