Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день администрация и пользователи ресурса!
Это мои первые шаги в MySQL, сильно не пинайте, если что.
Нужна помощь в решении проблемы.
Имеем:
База: `testdb`
в ней две таблицы:
`tab1` - назначение: заносить данные, название продукта, кол-во, дата.
`tab2` - назначение: автоматическое формирование данных, извлечение из `tab1` уникальных названий, после чего ручной внос описания продукта
Застрял на этапе формирования данных в таблице `tab2` пробую триггер, ниже, нарисовал этот бред, на мой взгляд, но не знаю как лучше и как в нем прописать проверку на существование в таблице `tab2` этой записи, дабы не было задвоений в колонке `name`
триггер тестовый
################################
Неактивен
Кажется, достаточно уникального индекса на tab2(name) и INSERT IGNORE в нее
в триггере. Не усложняйте себе жизнь
Неактивен
Таки да! Спасибо.
А если данные из `tab1`.`name` в виде 'part_151\apple' (да странное еще что хранятся слеши как два слеша, не понял зачем , но наверно на то есть причины) то есть, отсечь значение до слэша, узнал что есть REGEXP но синтаксис в мануале туманно описан, можете разжевать?
наверно, как то так ?
***skip***
Отредактированно _front_ (01.03.2011 20:51:45)
Неактивен
REGEXP не умеет изменять данные, только сопоставлять строку
регулярному выражению. Попробуйте составить замену из обычных
строковых функций — LOCATE, RIGHT.
Неактивен
Уважаемый! У меня еще есть вопрос.
Пока что получилось что то типа этого:
Отредактированно _front_ (02.03.2011 10:56:47)
Неактивен
Эээ... а не проще вот так?
INSERT IGNORE tab2 (name) VALUES ( IF( LOCATE('\\', NEW.name), SUBSTR(NEW.name, LOCATE('\\', NEW.name)), NEW.name ));
Неактивен