powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ограничение при создании таблицы
7 сообщений из 7, страница 1 из 1
Ограничение при создании таблицы
    #38544326
AndreevMakc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер! Подскажите, пожалуйста, в чем может быть проблема. Я только начал изучать sql, изучаю на postgresql. И вот не могу никак въехать, вроде делаю все правильно, прочитал туториалы различные. При создании таблицы пытаюсь наложить ограничение на поле custphonenumber. Для проверки сделал два числа. Но почему-то не получается добавить запись.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
create table Customers
	(CustID integer,
	 custfirstname varchar(50),
	 custlastname varchar(50),
	 custphonenumber varchar(50) check
	 (custphonenumber like ('[0-9][0-9]'))
	);
...
Рейтинг: 0 / 0
Ограничение при создании таблицы
    #38544673
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9.7. Pattern Matching

для LIKE спецсимволы только _ и %. используйте например SIMILAR TO или ~.
...
Рейтинг: 0 / 0
Ограничение при создании таблицы
    #38545606
AndreevMakc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBat, спасибо! Вопрос решен.
...
Рейтинг: 0 / 0
Ограничение при создании таблицы
    #38545728
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreevMakc,

хорошим тоном может являться демонстрация полученного решения
...
Рейтинг: 0 / 0
Ограничение при создании таблицы
    #38546094
AndreevMakc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема оказалась решена частично, в целом ограничение только цифры указывается при помощи similar to (или  ~). Как я понял "~" - это и есть similar to, а ~~ - это like.
т.е. к примеру проверил сначала на двух цифрах, затем проверил цифры и скобки. Вот пример:
Код: plsql
1.
2.
 alter table customers add constraint custphonenumber
check(custphonenumber ~'([0-9][0-9][0-9])');



Но обнаружилась новая проблема. Если я укажу к примеру вот такое ограничение: ([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9], то работать снова не будет.
Вот решаю данную проблему)
...
Рейтинг: 0 / 0
Ограничение при создании таблицы
    #38546117
AndreevMakc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем получилось, чтобы заработало. Вот листинг:
Код: plsql
1.
2.
alter table customers add constraint custphonenumber
check(custphonenumber ~'[\(][0-9][0-9][0-9][\)][[:space:]][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]')



Хотелось бы узнать мнение по этому ограничению, устанавливает его таким образом или есть еще варианты?
...
Рейтинг: 0 / 0
Ограничение при создании таблицы
    #38546283
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreevMakcХотелось бы узнать мнение по этому ограничению, устанавливает его таким образом или есть еще варианты?я бы хранил в БД только цифры. пробел и минусы - это уже форматировние при выводе.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ограничение при создании таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]