ВСТАВИТЬ уникальное значение в MYSQL - PullRequest
0 голосов
/ 19 августа 2011

Я пытаюсь вставить уникальное значение в мою таблицу, однако мне нужно знать ID, прежде чем я его создаю.Я знаю, что AUTO_INCREMENT решил бы эту проблему, но это поле не AUTO_INCREMENTed.

Это мой код ...

INSERT INTO networks 
    (NETWORK_ID, ADMIN_USER_ID, NETWORK_NAME, ADDRESS)
VALUES 
    ((SELECT MAX(NETWORK_ID)+1 FROM networks) , 3, 'Arcafe', 'habarzel 2 TA')

Когда я его запускаю, я получаюпредупреждение о том, что я не могу использовать таблицу в FROM, я думаю, потому что она указывает на себя.Как я могу достичь того, что мне нужно?Могу ли я изменить поле на AUTO_INCREMENT поле?

Ответы [ 3 ]

4 голосов
/ 19 августа 2011

Обычно вы устанавливаете поле как поле с автоматическим приращением, когда оно определено. Для этого вы можете использовать:

ALTER TABLE networks MODIFY NETWORK_ID int(10) unsigned NOT NULL auto_increment;

Чтобы затем вставить запись ew и автоматически получить назначенный идентификатор, просто пропустите поле из вставки, например.

INSERT INTO networks 
    (ADMIN_USER_ID, NETWORK_NAME, ADDRESS)
VALUES 
    (3, 'Arcafe', 'habarzel 2 TA')
1 голос
/ 19 августа 2011
ALTER TABLE networks CHANGE NETWORK_ID NETWORK_ID int auto_increment 

Руководство по изменению таблицы

1 голос
/ 19 августа 2011

Вы можете использовать отдельную таблицу для генерации уникальных идентификаторов и использовать эти идентификаторы

...