Первым шагом будет установка уникального ключа в таблице:
ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);
Затем вам нужно решить, что вы хотите сделать, когда есть дубликат. Если вы:
INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
INSERT INTO thetable (pageid, name, somefield)
VALUES (1, "foo", "first")
ON DUPLICATE KEY UPDATE (somefield = 'first')
INSERT INTO thetable (pageid, name, somefield)
VALUES (1, "foo", "second")
ON DUPLICATE KEY UPDATE (somefield = 'second')
INSERT INTO thetable (pageid, name)
VALUES (1, "foo"), (1, "foo")
ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)
Например:
sleep(num_secs)
Значение num_secs
может быть целым числом или числом с плавающей запятой.
Кроме того, если вы пишете это в приложении Rails или включили библиотеку ActiveSupport в свой проект, вы можете создавать более длинные интервалы, используя следующий удобный синтаксис:
sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second
sleep 6
будет спать в течение 6 секунд. В течение более длительного времени вы также можете использовать sleep(6.minutes)
или sleep(6.hours)
.
Я считаю until
очень полезным со сном. Пример:
> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
Используйте sleep примерно так:
sleep 2
Это будет спать в течение 2 секунд.
Будьте осторожны, чтобы привести аргумент. Если вы просто запустите sleep
, процесс будет спать вечно. (Это полезно, когда вы хотите, чтобы поток спал, пока он не проснулся.)