Вы также можете использовать HSL, доступный в любом хорошем браузере ( http://caniuse.com/#feat=css3-colors )
function randomHsl() {
return 'hsla(' + (Math.random() * 360) + ', 100%, 50%, 1)';
}
Это даст вам только яркие цвета, вы можете поиграть с яркостью, насыщенностью и альфа.
// es6
const randomHsl = () => `hsla(${Math.random() * 360}, 100%, 50%, 1)`
Какая версия PostgreSQL у вас установлена? Следующее предполагает 8.1.8 или новее (это может относиться и к более ранним версиям, я не знаю).
Я предполагаю, что вы имеете в виду, что истекло время ожидания phpPgAdmin - серверная часть PostgreSQL займет столько времени, сколько потребуется для завершения запрос / обновление. В этом случае возможно, что исходный сеанс все еще активен, а запрос UPDATE все еще выполняется. Я предлагаю выполнить следующий запрос (взятый из главы 24 документации PostgreSQL ) на машине, на которой размещен процесс сервера PostgreSQL, чтобы проверить, активен ли еще сеанс:
ps auxwww|grep ^postgres
Должно появиться несколько строк: 1 для главного процесса postmaster
и по 1 для процессов «писатель», «буфер статистики» и «сборщик статистики». Остальные строки предназначены для процессов, обслуживающих соединения с БД. Эти строки будут содержать имя пользователя и имя базы данных.
Надеюсь, отсюда вы сможете увидеть, продолжается ли сеанс, в котором вы выполнили исходное ОБНОВЛЕНИЕ. Хотя теоретически вы можете найти более подробную информацию, выполнив SELECT
в системном представлении pg_stat_activity
, по умолчанию PostgreSQL не настроен для заполнения наиболее полезных полей (таких как current_query
и query_start
). О том, как включить это в будущем, см. В главе 24.
Если вы видите, что сеанс все еще существует, завершите его. Вам нужно будет войти в систему как пользователь, запускающий процесс (обычно postgres
) или root, чтобы сделать это - если вы не запускаете сервер самостоятельно, попросите администратора базы данных сделать это за вас.
Еще одно: для обновления строк в таблице PostgreSQL избегает использования блокировок. Вместо этого он позволяет каждой записывающей транзакции создавать новую «версию» БД, которая становится «текущей версией», когда транзакция фиксируется, при условии, что она не конфликтует с обновлениями, сделанными в это время другими транзакциями. Так что я подозреваю, что "зависание", которое вы видите, вызвано чем-то другим - хотя чем, я не уверен. (Вы проверили очевидные вещи, например, заполнен ли раздел диска, содержащий БД?)
t конфликтует с обновлениями, сделанными в это время другими транзакциями. Так что я подозреваю, что "зависание", которое вы видите, вызвано чем-то другим - хотя чем, я не уверен. (Вы проверили очевидные вещи, например, заполнен ли раздел диска, содержащий БД?) t конфликтует с обновлениями, сделанными в это время другими транзакциями. Так что я подозреваю, что "зависание", которое вы видите, вызвано чем-то другим - хотя чем, я не уверен. (Вы проверили очевидные вещи, например, заполнен ли раздел диска, содержащий БД?)Я никогда не работал с PostreSql, но если он похож на другие, я бы сказал, что вам нужно отключить соединение / завершить транзакцию, удерживающую блокировки.