|
|
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, вопрос начинающего. Подскажите пожалуйста как в PG Admin создать Поле ID с автоинкрементом, НО еще чтобы при удалении записей, выдаваемые значения опять начинались с 1 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 10:42 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
MySight, Никак... штатными средствами sequences только в одну сторону крутятся. PS: после удаления всего из таблицы сделать select setval('seqname', 1) - самый простой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 10:55 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Maxim BogukPS: после удаления всего из таблицы сделать select setval('seqname', 1) - самый простой вариант. вот этого делать и ненадо. если будет другая транзакция делающяя INSERT, то id можем получить из сиквенса ещё до перезапуска, т.е. не 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 11:12 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. Главное чтоб прав хватило ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 11:45 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
LonepsychoMaxim BogukPS: после удаления всего из таблицы сделать select setval('seqname', 1) - самый простой вариант. вот этого делать и ненадо. если будет другая транзакция делающяя INSERT, то id можем получить из сиквенса ещё до перезапуска, т.е. не 1. если идут параллельные втсавки то термин "удаление всего из таблицы" становится весьма философским... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 12:02 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
SmeL_md Код: sql 1. Главное чтоб прав хватило Но ведь это полный перезапуск? Или я чего то не понимаю? Просто я думал что можно средствами Postgresql-a реализовать проверку на недостающие (пробелы) и выдавать новым записям недостающие ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 12:25 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
MySightSmeL_md Код: sql 1. Главное чтоб прав хватило Но ведь это полный перезапуск? Или я чего то не понимаю? Просто я думал что можно средствами Postgresql-a реализовать проверку на недостающие (пробелы) и выдавать новым записям недостающие ID .тут таких вопросов здесь каждый десятый так что лучше почитайте вначале чем запускать мой запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 12:32 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
SmeL_mdMySightпропущено... Но ведь это полный перезапуск? Или я чего то не понимаю? Просто я думал что можно средствами Postgresql-a реализовать проверку на недостающие (пробелы) и выдавать новым записям недостающие ID .тут таких вопросов здесь каждый десятый так что лучше почитайте вначале чем запускать мой запрос эээх ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 13:19 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Вообще-то афтар спрашивает про http://www.postgresql.org/docs/8.2/static/sql-altersequence.html раздел ALTER SEQUENCE serial RESTART WITH 105; а здешние умельцы умалчивают, как про очевидную глупость, следующее: У вас были записи с id от 0 до 10000 вы удалили от 0 до 5000 и сделали рестарт секвенсу. ок. Все вылетит после 5000 вставок, пояснять почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:05 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Так что единственное разумное использование рестарта последовательности - да, в сочетание с truncate'ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:06 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
HawkmoonВообще-то афтар спрашивает про http://www.postgresql.org/docs/8.2/static/sql-altersequence.html раздел ALTER SEQUENCE serial RESTART WITH 105; Т.е. мне надо прописать какую то функцию использующую данный запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:41 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
MySightЗдравствуйте, вопрос начинающего. Подскажите пожалуйста как в PG Admin создать Поле ID с автоинкрементом, НО еще чтобы при удалении записей, выдаваемые значения опять начинались с 1 Вообще я неправильно поставил вопрос, Извините за путаницу. Смотрите, есть записи в таблице с ID - 1 2 3 4 И допустим я удалил 2 и 3. Как мне сделать так чтобы при следующем внесении записи, ID по умолчанию присвоилось 2 а потом 3 а потом 5? Это делается в PostgreSQL? Или все таки все на программном уровне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:44 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Экономите номерки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:49 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Sasha AliasЭкономите номерки? =))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 14:58 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Переношу данные из Access, нужно настроить счётчики. Всё отлично, но один не работает... :( Что за хрень? Пробую и так Код: plsql 1. и так Код: plsql 1. отвечают ОШИБКА: ошибка синтаксиса в имени LINE 1: select setval('Резерв_id_seq', (select max("id") from public... ^ ********** Ошибка ********** ОШИБКА: ошибка синтаксиса в имени SQL-состояние: 42602 Символ: 15 Работает только Код: plsql 1. 2. и даже, бтяль, так не работает Код: plsql 1. 2. 3. 4. [QUERY ] SELECT max("id") FROM public."Резерв" [PGSCRIPT ] (340829) [WARNING ] ALTER SEQUENCE Резерв_id_seq RESTART WITH (340829) ОШИБКА: ошибка синтаксиса (примерное положение: "(") LINE 1: ALTER SEQUENCE Резерв_id_seq RESTART WITH (340829) Пока настроил вручную, но это первых 10 тестовых таблиц из 500... Если так дело пойдёт - дело табак... П.с. На 9 таблицах setval отлично работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 09:40 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Шыфл, 1)Не использовать русские имена у таблиц и прочего... нездоровое это дело. 2)Если же очень хочется то быть готовым к тому что имена придется всегда в двойных кавычках брать. Я бы попробовал ALTER SEQUENCE "Резерв_id_seq" RESTART WITH 340829; (с двойными кавычками и без скобок вокруг числа). PS: не стоит забывать что в отличии от английского текста у русского языка есть много разных кодировок да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 09:52 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, Код: plsql 1. это конечно работает, спору нет И даже, как выяснилось, так работает Код: plsql 1. 2. 3. 4. 5. 6. Но что-то мне всё это не нравится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 09:59 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, а не нравится мне это потому, что в Accesse не работает PLSQL (или я пока не понял, как ему его скормить) Код: plsql 1. 2. 3. Говорит что AccessОШИБКА: ошибка синтаксиса (примерное положение: "@") LINE 1: DECLARE @a; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 10:10 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
ШыфлMaxim Boguk, а не нравится мне это потому, что в Accesse не работает PLSQL (или я пока не понял, как ему его скормить) Код: plsql 1. 2. 3. Говорит что AccessОШИБКА: ошибка синтаксиса (примерное положение: "@") LINE 1: DECLARE @a; а RTFM не пробовали ? Если DECLARE, то только в plpgsql, а это -- в блоке DO , здесь вам не TSQL с общим контекстом вот что мне не нравится -- это наплыв долбоклювов в пж, с гонором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 10:24 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
qwwq, RT в процессе, только может подскажете, где это FM лежит, а то единственное, что пока нашёл это http://www.pgadmin.org/docs/dev/pgscript.html А там никаких блоков DO не описывается... Так что если на пальцах объясните, буду очень благодарен. Ну, и ссылочка не помешает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 10:33 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Шыфлqwwq, RT в процессе, только может подскажете, где это FM лежит, а то единственное, что пока нашёл это http://www.pgadmin.org/docs/dev/pgscript.html А там никаких блоков DO не описывается... Так что если на пальцах объясните, буду очень благодарен. Ну, и ссылочка не помешает при чом тут скриптовой язык левой шняги ? вы же из аксесса вызываете запрос. так вот, он должен быть написан на языке сервера субд, а не левой шняги "пжодмин" все инструкции SQL -- тут: http://www.postgresql.org/docs/current/static/sql-commands.html вас интересует возможность перейти к процедурному языку. Это тут: http://www.postgresql.org/docs/current/static/sql-do.html а сама работа с конкретными процедурными языками -- тут: http://www.postgresql.org/docs/current/static/server-programming.html ну и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 10:54 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
qwwq, Ага, понятно... Уже лучше Код: vbnet 1. 2. 3. 4. 5. 6. Так заработало... Только вот Execute на Execute - это сила :) П.с. За ссылочки - мерси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 11:23 |
|
||
|
ID Serial Sequence
|
|||
|---|---|---|---|
|
#18+
Шыфлqwwq, Ага, понятно... Уже лучше Код: vbnet 1. 2. 3. 4. 5. 6. Так заработало... Только вот Execute на Execute - это сила :) П.с. За ссылочки - мерси заставь альтернативно умудрённого -- богу молиться -- и лбу его выпадут суровые испытания. Попобуйте в разных вариантах из пжодмина: Код: sql 1. 2. и отпишитесь, если найдете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39051488&tid=1997774]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 387ms |

| 0 / 0 |
