J'ai couru cela en utilisant MySql et il ne semble pas aimer TEXT
. Avec SQL Server j'utilise nvarchar(max)
Que dois-je utiliser dans MySql? Dans d'autres tableaux, certains champs seront des descriptions et peuvent être longs, donc pour le moment je pense que la longueur fixe est mauvaise.
create table if not exists
misc_info (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
key TEXT UNIQUE NOT NULL,
value TEXT NOT NULL
)ENGINE=INNODB;
Vous ne pouvez pas avoir un index UNIQUE sur une colonne de texte dans MySQL.
Si vous souhaitez indexer sur un champ TEXT ou BLOB, vous devez spécifier une longueur fixe pour ce faire.
Depuis MySQL documentation :
Les colonnes BLOB et TEXT peuvent également être indexées, mais une longueur de préfixe doit être indiquée.
Exemple:
CREATE UNIQUE INDEX index_name ON misc_info (key(10));
Deux choses:
UNIQUE(key) TEXT value
.Je pense que cela étouffe le nom du champ key
plutôt que le type TEXT (qui devrait être parfaitement bien).
(Et comme @Pablo l'a déjà dit, les champs mémo ne peuvent pas être uniques.)