Есть простенькая БД (sqlite) из семи полей, последнее VARCHAR(1024) хочется сделать уникальным.
C++ (Qt)
QString q = "CREATE TABLE IF NOT EXISTS " + QString(tableName) + " ("
"key INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
"author VARCHAR(255),"
"singer VARCHAR(255),"
"title VARCHAR(255),"
"descr VARCHAR(255),"
"type VARCHAR(2),"
"filename VARCHAR(1024)"
")";
В SQL я почти полный ноль, потому найти в гугле подходящую инструкции не сумел.
Из того, что пробовал:
C++ (Qt)
"CONSTRAINT uniq_data UNIQUE(filename)"
не помогло, хотя таблица создалась, но запись с таким же именем файла успешно добавилась
C++ (Qt)
"filename UNIQUE VARCHAR(1024)"
тут просто таблица не создалась.
Делать имя файла ключом как-то странно, на мой взгляд, хотя может быть для подобных случаев это и принятая практика? Но если мне потребуется в дальнейшем нормализовать таблицу, то объединять их по имени файла глупость несусветная...