CHECK (...)

-gray-
Дата: 06.07.2004 13:28:29
Хочется замутить проверку на символы:
SELECT lower('Qwe123_-.') SIMILAR TO '[.a-z,\_,0-9-]+';
Например в маску включены символы '.', '-', '_', 0-9, a-z, но вот блин '_' не работает, подскажите что не так, плиз.
ЗЫ: Это будет CHECK в таблице, триггеры не предлагать =)
-gray-
Дата: 06.07.2004 15:11:02
Решение найдено ввиде вот такой хрени:
SELECT lower('qwe1-_23.') SIMILAR TO '[.a-z,\w_,0-9-]+' ESCAPE '\w';
Но чё-то я не совсем понимаю назначение '\w'... =/
Может кто объяснит или поправит? Буду благодарен.
vis
Дата: 06.07.2004 18:57:56
Ответ содержится в вопросе :)

... ESCAPE '\w';

ты объявил ESC-последовательностью символ \w, насколько я понимаю
-gray-
Дата: 07.07.2004 08:02:24
vis
Ответ содержится в вопросе :)

... ESCAPE '\w';

ты объявил ESC-последовательностью символ \w, насколько я понимаю


Это я вроде понял, но почему не работает стандартный '\' символ?
sn1251
Дата: 07.07.2004 10:02:53
Потому что \ надо удваивать. Первый раз \\ заменит на \ парсер запроса. А второй раз \_ на _ собственно оператор similar.