Я в основном хочу вставить две цифры ('Val', 1) в столбцы (, jg
) таблицы t1. Хотя cls
настроен как уникальный, jg должен появляться несколько раз с одинаковым значением, поэтому INSERT IGNORE не будет работать. Тем не менее, я должен проверить, существует ли пара ('Val', 1), и если не так, мне нужно вставить эти значения.MySQL Вставка: Избегайте дубликатов с несколькими колонами
Я пробовал так:
INSERT INTO t1 (`cls`,`jg`)
SELECT 'Val',1 FROM cls WHERE NOT EXISTS(
SELECT 1 FROM cls WHERE `cls`='Val' AND `jg`=1)
LIMIT 1;
Но это не работает, если таблица пуста, потому что тогда внешний оператор выбора не содержит записей ...
Как мне действовать ? Я понятия не имею, как обращаться с этим по-другому ...
Это дает мне 'BLOB/TEXT столбец 'ЦБС', используемые в описании ключа без ключа length'; вероятно, потому что cls уже уникален сам по себе? – Luke
Не уверен, попробуйте сбросить ограничение на cls. – Mihai