Есть уникальный составной индекс на два поля - (gsort, isort).
В Mysql у меня есть запрос, где update проходил с конца выборки, чтобы избежать ошибки об уникальности уникального индекса. Как мне такое реализовать на PostgreSQL? Спасибо
UPDATE table
SET isort = isort + 1
WHERE isort > :isort
AND gsort = :gsort
ORDER BY isort DESC;
чтобы избежать ошибки об уникальности уникального индекса
Давайте собственно эту основную задачу и решать. PostgreSQL позволяет уникальной ограничение сделать отложенным.
ALTER TABLE table
ADD constraint table_gsort_isort_unique unique (gsort, isort) deferrable initially deferred;
Такое ограничение проверяется не в момент записи в таблицу, а при фиксации транзакции. Таким образом:
melkij=> create temp table tablename (i serial primary key, gsort int, isort int);
CREATE TABLE
melkij=> ALTER TABLE tablename
ADD constraint table_gsort_isort_unique unique (gsort, isort) deferrable initially deferred;
ALTER TABLE
melkij=> insert into tablename (gsort, isort) values (1,1);
INSERT 0 1
melkij=> insert into tablename (gsort, isort) values (1,1);
INSERT 0 1
melkij=> select * from tablename;
i | gsort | isort
---+-------+-------
1 | 1 | 1
2 | 1 | 1
melkij=>commit;
ERROR: duplicate key value violates unique constraint "table_gsort_isort_unique"
Таблица внутри транзакции может временно нарушать ограничения уникальности. И вы можете что угодно при этом делать, база вам не позволит только зафиксировать невалидное состояние таблицы. Если на момент commit
у вас условие уникальности не будет нарушаться - то проблемы нет, транзакция будет зафисирована.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Настроила BrowserSync, стили на нём подгружаются лишь при нахождении html-файла в папке над cssПри размещении в соседнюю папку - отключаются (локально...
Мне нужно чтобы блок Child Div был по высоте как Parent DIV, но не превышал егоДля этого я прописал:
Подскажите пожалуйста, каким образом можно из input[type=submit] сделать кнопку вот как эта?
Есть div с результатом подсчета калькулятора (#grid-15-15)Нужно этот div "приклеить" к низу экрана, чтобы он оставался там и прокручивался вместе со страницей,...