мне нужно регистрировать пользователь в БД и для этого я должен проверить не существует ли такого логина (номера телефона) уже в базе и если да то зарегистрировать.
Пример:
INSERT INTO Client (Name, Last_Name, Address, City, Phone, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '123456789', 'Norway');
Все мои логины (номера телефонов) и пароли находяться в представлении Users Как именно мне сделать проверку с Exists.
Проблему решил таким условием
if exists(select log from login_phone where log = phone)
then raise exception 'Уже существует такой телефон. В регистрации отказано';
По-хорошему, проверки такого рода возможны только для получения человеческих сообщений об ошибке на клиенте.
В реальности же полагаться на exists
нельзя, потому как нет никаких гарантий, что все записи будут вставляться через метод API, который вы описываете.
Специально для таких ситуаций SQL предлагает вам создавать ограничения уникальности (unique constraints), описав которые, вы можете быть уверены в том, что в таблице точно всё будет хорошо:
-- на этапе создания таблицы
CREATE TABLE Client (
Phone bigint UNIQUE,
);
-- для уже созданной таблицы
ALTER TABLE Client ADD CONSTRAINT UNIQUE (Phone);
В случае с номером телефона вам можно так же задуматься о создании уникального индекса, это, кроме вышеописанного, позволит БД быстрее выполнять запросы, если выборка будет вестись по этому полю.
CREATE UNIQUE INDEX Phone_idx ON Client(Phone);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть 2 переменные: цена со скидкой и размер скидкиНужно вывести изначальную цену без скидки
Есть таблица shop_order, в этой таблице данные о заказах за исключением количества (поле quantity), количество находится в другой таблице - shop_order_itemsНужно...
У меня есть форма регистрации, получается клиент наполняет эту форму, и в конце калькулятор вычитывает сумму которую клиент должен оплатить,...