Как добавить поле varchar для уже используемой таблицы?

У меня есть база данных mysql с таблицей (InnoDB) Игры:

gamerooms
id: bigint(20) unsigned not null auto_increment
PRIMARY KEY (`id`)

Я хотел бы начать генерировать значение UUID для каждой строки, которым я могу поделиться публично, что-то вроде:

gamerooms
id  |   id_public  |
--------------------
 1  |   abcde
 2  |   ghijk
 3  |   lmnop
   ...

select * from gamerooms where id_public = ...

Как мне добавить эту новую колонку, также помня, что в таблице уже есть записи? Я запутался, потому что столбец должен быть помечен как NOT NULL, но после добавления столбца все записи, которые уже существуют, будут иметь пустые значения... Должен ли я предоставить значение по умолчанию?:

ALTER TABLE `gamerooms` ADD COLUMN `id_public` varchar(36) DEFAULT something AFTER `id`

Я хочу поставить индекс на id_public, конечно, после его создания, поэтому не уверен, что нулевые значения после первого создания столбца что-то испортят.

Также я могу использовать varchar(36) с выводом mysqls UUID(), верно?

Спасибо

12
задан user291701 26 January 2012 в 02:33
поделиться