2012-02-23 3 views
1

Я пытаюсь выполнить INSERT с использованием SELECT для создания первичного ключаВставки с самогенерирующейся первичным ключом

Таблица Employee:

ID(PK) NAME 
1  John 
2  Doo 
3  James 

Таблица Друзей:

ID(PK) FriendName 

Теперь я хочу вставить всех сотрудников в Друзья и d самогенерирует ПК.

Я пробовал:

INSERT INTO Friends (ID, FriendName) 
    SELECT (SELECT max(ID)+1 FROM Friends) as ID 
      , Name as FriendName 
    FROM Employee 

Для первой записи, которая работает отлично. Затем я получаю двойную ключевую ошибку от MySQL.

Как я могу это сделать (Select max(ID)+1 from Friends) раз в строке? Если это не правильный подход, как я должен структурировать свой оператор INSERT?

Благодаря

ответ

5

Если вы хотите ключ, который всегда увеличивающийся чек AUTO_INCREMENT.

Затем вы можете сделать вставку так:

INSERT INTO Friends (FriendName) 
select Name as FriendName FROM Employee 
Смежные вопросы