Вылетает ошибка при попытке записать в таблицу вторую строку. Как исправить?
В MySQL 5.7 есть хранимая функция, которая пишет в БД:
CREATE function `insert_material` (_guid char(36), _name varchar(255)) returns int
BEGIN
declare b_guid binary(16);
set b_guid = unhex(replace(_guid, '-', ''));
insert into Material(guid, name) value(b_guid, _name);
return LAST_INSERT_ID();
END
Проблема в том, что в таблицу удается сделать только одну запись. При попытке сделать вторую запись выпадает ошибка:
Денис Акимкин, нет! Вручную передаю функции разные guid.
Кроме того, когда раньше те же самые guid писались в базу в формате VARCHAR(36), не было НИ ОДНОЙ коллизии.