Вставить с самостоятельно сгенерированным первичным ключом - PullRequest
1 голос
/ 23 февраля 2012

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

Таблица Сотрудник:

ID(PK)   NAME
1        John
2        Doo
3        James

Таблица Друзья:

ID(PK)   FriendName

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

Я пытался:

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?

Спасибо

1 Ответ

5 голосов
/ 23 февраля 2012

Если вам нужен ключ, который постоянно увеличивается, проверьте AUTO_INCREMENT .

Затем вы можете выполнить вставку следующим образом:

INSERT INTO Friends (FriendName)
select Name as FriendName FROM Employee
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...