Ho un database MySQL con una tabella (InnoDB) di giochi:Come aggiungere un campo varchar per una tabella già in uso?
gamerooms
id: bigint(20) unsigned not null auto_increment
PRIMARY KEY (`id`)
mi piacerebbe iniziare a generare un valore UUID per ogni riga che posso condividere pubblicamente, qualcosa di simile:
gamerooms
id | id_public |
--------------------
1 | abcde
2 | ghijk
3 | lmnop
...
select * from gamerooms where id_public = ...
Come aggiungere questa nuova colonna, tenendo presente che nella tabella sono già presenti record? Sono confuso, perché la colonna deve essere contrassegnato NOT NULL, ma dopo aver aggiunto la colonna, tutti i record che già esistono avrei valori vuoti .. Devo fornire un valore predefinito ?:
ALTER TABLE `gamerooms` ADD COLUMN `id_public` varchar(36) DEFAULT something AFTER `id`
voglio metti un indice su id_public ovviamente dopo che è stato creato, quindi non è sicuro se i valori nulli dopo che la colonna è stata creata per la prima volta rovinerà tutto.
Inoltre, posso usare varchar (36) con l'output UUID() di mysqls, giusto?
Grazie
Perché contrassegnare la colonna 'NOT NULL' se non è stato assegnato alcun valore significativo per gli articoli esistenti? – Borealid