Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как изменить последнюю запись с определённым неуникальным значением? / 6 сообщений из 6, страница 1 из 1
26.12.2017, 15:12
    #39576181
Sadrutdin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как изменить последнюю запись с определённым неуникальным значением?
Код: xml
1.
2.
3.
4.
5.
6.
CREATE TABLE new_history (
    start timestamp with time zone DEFAULT now() NOT NULL,
    uuid character(36) NOT NULL,
    phone character(11) NOT NULL,
    finish timestamp with time zone
);



Нужно указать время завершения заказа (может вообще не завершится) с помощью функции now(). Проблема в том, что phone не уникальный, то есть получается, что надо изменить последний заказ с этим номером.
...
Рейтинг: 0 / 0
26.12.2017, 15:13
    #39576187
Sadrutdin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как изменить последнюю запись с определённым неуникальным значением?
Картинка была лишней )
...
Рейтинг: 0 / 0
26.12.2017, 15:19
    #39576194
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как изменить последнюю запись с определённым неуникальным значением?
Sadrutdin,

а start+phone он уникальный?
вообще для начала в таблице не хватает явно объявленного primary key, если бы он был - вопрос бы не стоял, т.е. у вас с дизайном схемы проблемы скорее.
...
Рейтинг: 0 / 0
26.12.2017, 15:37
    #39576211
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как изменить последнюю запись с определённым неуникальным значением?
Насколько я понимаю наскальную живопись в первом сообщении - как раз и PK и уникальный ключи на самом деле есть. Проверьте это.
Если так - найти uuid последнего заказа по phone и обновить его - уже не проблема.

А может вообще необходим простой?
Код: sql
1.
update new_history set finish = now() where finish is null and phone = ?
...
Рейтинг: 0 / 0
26.12.2017, 15:45
    #39576218
Silender
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как изменить последнюю запись с определённым неуникальным значением?
Код: plsql
1.
update new_history set finish=now() where uuid=(select uuid from new_history where phone=? order by start limit 1);
...
Рейтинг: 0 / 0
26.12.2017, 15:47
    #39576219
Silender
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как изменить последнюю запись с определённым неуникальным значением?
Точнее
Код: plsql
1.
update new_history set finish=now() where uuid=(select uuid from new_history where phone=? order by start desc limit 1);
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как изменить последнюю запись с определённым неуникальным значением? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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