|
|
|
Баг или фишка?
|
|||
|---|---|---|---|
|
#18+
postgresql 9,5 версии есть insert с исключением, типа: Код: sql 1. 2. 3. если нарушается условие по уникальности - то ничего не делать. Всё хорошо, теперь можно добавлять записи одним запросом, но счетчик big serial при каждом новом инсерте добавляет 1. То есть сработало исключение, а счетчик id всё равно 1 добавил. Как бы я не волнуюсь, 1. но убывает; 2. теперь я не могу прикинуть сколько у меня записей; 3. ваще неаккуратно, вдруг счетчик тоже на диск пишется - тогда +1 запись при каждом исключении. Можно и надо ли что-то делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 05:16 |
|
||
|
Баг или фишка?
|
|||
|---|---|---|---|
|
#18+
azsxpostgresql 9,5 версии есть insert с исключением, типа: Код: sql 1. 2. 3. если нарушается условие по уникальности - то ничего не делать. Всё хорошо, теперь можно добавлять записи одним запросом, но счетчик big serial при каждом новом инсерте добавляет 1. То есть сработало исключение, а счетчик id всё равно 1 добавил. Как бы я не волнуюсь, 1. но убывает; 2. теперь я не могу прикинуть сколько у меня записей; 3. ваще неаккуратно, вдруг счетчик тоже на диск пишется - тогда +1 запись при каждом исключении. Можно и надо ли что-то делать? Это архитектурное ограничение реализации ON CONFLICT. Bigserial вам хватит надолго так что особо волноваться смысла нет. Если очень мешает - сделать тоже самое но без ON CONFLICT через BEFORE INSERT триггер (он по логике не должен sequence сьедать на пропущенных update). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 05:37 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39258607&tid=1997157]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 492ms |

| 0 / 0 |
