SQL уникальность нескольких столбцов
Мне нужно заносить данные, полученный парсером из нескольких потоков.
Так как нету какой либо идентификации записи. То я решил создать UNIQUE из всех полей
CREATE TABLE `brand` (
`id` Int( 255 ) AUTO_INCREMENT NOT NULL,
`app_data` Date NOT NULL,
`brand` Text NOT NULL,
`holder` Text NULL,
`holder_country` Text NULL,
`nice_cl` Text NULL,
`number` Text NULL,
`origin` Text NULL,
`relevance` Int NULL,
`source` Text NULL,
`status` Text NULL,
`image_class` Text NULL ,
UNIQUE(`app_data`, `brand`, `holder`, `holder_country`, `nice_cl`, `number`, `origin`, `relevance`, `source`, `status`, `image_class`))
ENGINE = InnoDB;
Выкинуло ошибку, из - за Text.
Сменил на Varchar(255). Теперь стало выдавать ошибку, о том, что ключ больше 3072 bytes.
Можно конечно заносить текст в каждую таблицу ( + 10 таблиц)(нормализовать) а уже в главной таблицу получать Id на их, но нужно именно в таком виде, чтобы было все в 1 таблице.
Есть варианты по увеличению этого key? База MySQL.
Может в PostgreSQL можно так сделать?
Иначе придется в парсере отдельным потоком сначала выполнять select запрос на проверку наличия в базу данных. А затем и Insert делать