|  | 
Задавайте вопросы, мы ответим
Вы не зашли.
Работаю параллельно два человека с одной базой.
Ситуация - два человека с разницей в несколько сек. делают группу insert-ов в разные таблички. При каждой вставке записывается время записи now().
Так как есть разница во времени измеряется в секундах должно быть разное время записи в таблицу также в секундах. но! 
Почему в таблице записываетcя время разницы в котором почти нет? 
пример - человек А нажал на клавишу сохранить в 10:20:20, человек Б сохранился в 10:20:22; 
Обе записи прошли по времени как 10:20:25;
Да, возможно бока в php скрипте. Но тогда должно быть разные интервалы записи.
Если ли в mysql какой-то пул заданий. Где он собирает-собирает, потом все резко выполняет? Проблема в том, что от записи которую сохраняет человек А, зависит номер документа под которым сохраняет человек Б.
А когда время одинаковое то номера документов так - же одинаковые...
Неактивен

Скорее всего, проблема действительно в PHP. Но нельзя делать номер
документа по времени в любом случае — плохое решение. Если два
человека действительно выполнят INSERT одновременно (в течение
одной секунды) — Вы даже в случае починенного PHP получите ошибку.
Имеет смысл делать документы каким-то независимым способом. Обыч-
но, это просто автоинкрементное число.
Неактивен
autoincrement не получится. В нем происходит нумерация для каждого отдельного типа документа, и вычисляется независимо. К тому же номера сбрасываются каждый месяц. 
paulus написал:
Вы даже в случае починенного PHP получите ошибку
А почему получу ошибку? Для каждого скрипта - создается свое подключение. Просто заблокируется таблица, пока будет делать один скрипт вставку. 
Я думал вот в другом направлении.
Можно ли создать триггер или процедуру, которая будет проверять это поле на уникальность? Допустим если есть такое значение за последний день то прерываться, и возвращает ошибку или еще что-то.Чтобы скрипт это отловил, и выполнился повторно, но с новыми данными.
Увы, структуру таблиц менять нельзя. Наследие тяжелое.
____
Вот еще вопрос как быстро индексируется запись в таблице после insert? Если индекс стоит на поле date.
Непроиндексированное поле участвует в выборке date between "d1" and "d2"?
Вот таблица индексов:
+--------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table  | Non_unique | Key_name  | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| jurnal |               0 | PRIMARY    |                 1 | id                 | A           |      412798 |     NULL | NULL    |      | BTREE        |              |               |
| jurnal |               1 | idate         |                 1 | date             | A           |        9276  |     NULL | NULL    |       | BTREE        |              |               |
+--------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
Почему Cardinality индекса ID захватывает все записи, а индекс idate - только 9 тысяч? Ведь дата - практически всегда уникальна. Кроме случаев когда происходить одновременная запись (что явно не в 31 тысячи записей). Тип таблицы MyISAM
Отредактированно maxist (12.04.2011 23:24:53)
Неактивен

Можно, конечно, никто не запрещает 
Индексируется сразу, при вставке. Даты у Вас уникальны далеко не практически
всегда, как мы видим из cardinality 
Пересчитать cardinality MyISAM можно с помощью команды ANALYZE TABLE tablename.
Неактивен