|
update ключевого поля int
|
|||
---|---|---|---|
#18+
как сделать update по ключевому полю X (int) с числами чтобы начиная со строки Y все числа стали на Z больше например в таблице есть числа: 1;2;3;4;5 чтобы получилось: 1;2;4;5;6 т.к. поле ключевое, то начиная с первой подходящей строки число 3 становится 4, а 4 уже есть - поэтому обновляются только те строки, в которых Y+Z < max(X). Можно ли сделать update в один запрос не снимая ключа, не используя вспомогательных столбцов и т.п.? спасибо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 00:46 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byМожно ли сделать update в один запрос не снимая ключа, не используя вспомогательных столбцов и т.п.?Можно, а что не получается-то ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:08 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
поле - ключевое, с запретом на дублирующиеся значения ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:09 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
p.s. ошибочка в посте #1 - обновляются только те строки, Y+Z > max(X). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:11 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byполе - ключевое, с запретом на дублирующиеся значенияИ что это меняет ? И до update и после дублирующих значений не будет, так что всё нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:13 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
у меня дело не в том, что после update их не будет, а в том, что update не обновляет поля, поскольку в таблице есть 1;2;3;4;5;6 если мы хотим увеличить на 1 строки начиная с 4, то 4+1=5 но 5 уже есть в таблице поэтому update это строку не обновляет и т.д. до 6 6+1=7 7 в таблице нет и записывается 7 вместо 6. итого на выходе имеем: 1;2;3;4;5;7 а надо: 1;2;3;5;6;7 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:34 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byу меня дело не в том, что после update их не будет, а в том, что update не обновляет поляЭто что за чудо такое ? В смысле СУБД какая, в которой Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:39 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
Access Если поле не ключевое с режимом "повторения не допускаются" - то всё работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 01:46 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byAccess Если поле не ключевое с режимом "повторения не допускаются" - то всё работает.Даже в этом случае не работает, если в таблице только одно поле и оно индексировано как "повторения не допускаются", но не ключевое. Проверил на 2003. В общем, идиотизм. Посему либо обновлять построчно сзади наперёд, либо обновлять за 2 update. Т.е., как-то так Код: plaintext 1. 2.
P.S. Хотя обновление ключевого поля уже само по себе странно. Стоило бы над этим задуматься. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 02:26 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
у меня тоже пока что только такая идея (за 2 прохода). а обновление поля надо сделать т.к. пропущена одна запись в позиции 473 примерно из 1000 записей. поскольку есть вероятность вставки строк и в будущем, хотелось бы сделать универсальный запрос, а не каждый раз писать запрос на обновление. поле ключевое сделано только лишь для того чтобы не было случайно повторных номеров, связь с другими таблицами отсутствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 11:41 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byполе ключевое сделано только лишь для того чтобы не было случайно повторных номеров, связь с другими таблицами отсутствует.Зачем делать поле ключевым, если оно не ключевое??? Наложите на него уникальный констрейн. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 12:13 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
alexeyvg, и как сделать это в access? чтобы поставить запрет на повторение, то поле только можно сделать индексированным (ключевым). и дело не в том, что поле ключевое или нет, а в том, что установлен запрет на повторения. Модератор: Тема перенесена из форума "Проектирование БД". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 12:57 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byкак сделать update по ключевому полю X (int) с числами чтобы начиная со строки Y все числа стали на Z больше ... а вы когда говорите "по ключевому" - имеете ввиду поле с типом счётчик ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 19:51 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
ёа вы когда говорите "по ключевому" - имеете ввиду поле с типом счётчик ? в вообщем, если я ошибаюсь, то так можна Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 21:10 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-byа обновление поля надо сделать т.к. пропущена одна запись в позиции 473 примерно из 1000 записей... "ну фуу" (с) ну не в этом смысл ключа в таблице ... (( !! зы незаметил как-то сразу этот перл... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 21:28 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
ё, спасибо! я так и думал, что тут нужен какой-нибудь вложенный запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2011, 23:42 |
|
update ключевого поля int
|
|||
---|---|---|---|
#18+
code-by, Страшно представить, что будет со связанными записями в других таблицах, если они есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2011, 06:36 |
|
|
start [/forum/topic.php?fid=45&msg=37060947&tid=1628914]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 169ms |
0 / 0 |