| 
 | 
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  есть занятная проблема. ситуация: есть таблица (любая), в которой есть primary key, который, например, задаётся так id int not null GENERATED BY DEFAULT AS IDENTITY (START WITH -2147483648, INCREMENT BY 1, NO CACHE) тим переменной роли не играет, самое главное, что есть generated by default as identity generated always в этой схеме не позволяет делать import вообще, поэтому его не рассматриваем. делаю ей db2 export ... хоть в формат del (стопудово), хоть в формат ixf (на 99%) затем делаю ей db2 import Например, в этой таблице 1000 записей уже есть и все они подряд, начиная с -2147483648 и далее в сторону увеличения. В итоге получаю точно такую же таблицу, НО, вставить я не могу ни одной строки, пока id задаю как default. Ошибка выскакивает 1000 раз, пока маркер (или кто там у неё внутри) default не станет -2147482648 и только тогда начинает вставляться новая запись. Если, например, в этой тысяче есть пропущенное значение, например сотое, то система выдаст 99 ошибок, потом вставит одну строку, а при попытке вставить ещё одну строну будет ругаться ещё 900 раз. то есть до тех пор, пока принимаемое default'ом значение совпадает с id существующих строк. Как это лечить цивилизованным способом? Раньше я делал (год назад, когда была необходимость) так: с помощью специального скрипта забивал все дырки в таблице по максимального значения, потом стирал все временные строки и всё начинало вставляться и замечательно работать, но в этом случае есть сильное затруднение, если учесть, что таблица может быть с разного рода unique комбинациями столбцов. Сейчас снова встала такая необходимость, но старый способ хочу по возможности избежать. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.01.2004, 21:34 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  вдогонку Система: OS/2 ACP2 / eComStation База: DB/2 v7.2 fixPack 11 Железо роли не играет. Вообще уверен, что ни система ни база здесь роли не играет, потому что такое наблюдалось на более ранних фиксах. Здесь возникает вопрос: это документированное поведение базы или это глюк ака фича? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.01.2004, 21:41 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GENERATED реализован через счетчик (1 значение), а не множество занятых. BY DEFAULT позволяет вставлять значения в ручную, но не учитывает их при генерации. Мы разделили на 2 области <0 - автоматом, >0 вручную. В твоем случае надо наверно утилиту писать для выравнивания счетчика с махсимальным введенным значением ключа. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2004, 04:10 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  drop table;  create table id int NOT NULL generated by default as identity (start with сколько нужно) ) import; может, есть возможность сделать alter table, это нужно доки смотреть. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2004, 10:41 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Увы, alter table ... generated ... as identity  не навешивается. А с drop - create действительно выкрутиться можно, если на эту таблицу ссылок нет. Но можно drop и их, а после импорта восстановить. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2004, 11:46 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Что-то или я не понимаю или ... Нельзя разве при импорте (или загрузке в таблицу) сказать что поле с id не загружать? В информиксе например можно сказать load from 'file' insert into table (список полей) и загрузятся только те поля которые указаны, а например поле идентификатора не загружать и его при вставке очередной строки сгенерирует сама СУБД. В DB2 так можно сделать? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2004, 15:24 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Мне НУЖНО это поле загружать при импорте, потому что поле id используется в других таблицах. Нельзя ли этот счётчик увеличить каким-нибудь запросом? Ведь данные о моих таблицах хранятся в служебных таблицах, нет, ли там чего-нибудь такого? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.02.2004, 14:19 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  select ssc.* from SYSIBM.SYSSEQUENCES SSS LEFT JOIN SYSIBM.SYSDEPENDENCIES SSD ON SSD.DNAME = SSS.SEQNAME AND SSD.DSCHEMA = SSS.SEQSCHEMA JOIN SYSIBM.SYSCOLUMNS SSC ON SSC.TBNAME = SSD.BNAME AND SSC.TBCREATOR = SSD.BSCHEMA AND SSC.GENERATED <> '' дает все колонки с identity. В SYSIBM.SYSSEQUENCES или SYSIBM.SYSDEPENDENCIES все данные (начальное значение, шаг, ... текущее значение итд) разбирайся сам, но править на прямую система вряд ли даст. А если даже даст - не советую. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.02.2004, 08:14 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  нашёл в SYSIBM.SYSSEQUENCES START MAXVALUE MINVALUE Апдейтить не даёт. Как их заапдейтить? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.02.2004, 17:20 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Что тебе еще надо? В системные таблицы DB2 лазить руками не дает. Ты можешь при снятии backup сразу генерить скрипт на DROP - CREATE таблицы с нужным начальным значением поля. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.02.2004, 05:16 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  What about ALTER SEQUENCE??? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2004, 12:00 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AUTOINCREMENT != SEQUENCE imho ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.02.2004, 20:27 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Kamuzon спрашивал как изменить sequence. Identity как я помню меняется через ALTER TABLE. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.02.2004, 20:25 | 
  
  
  
   | 
||
| 
 
GENERATED BY DEFAULT AS IDENTITY 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  to Nikolay Kulikov 28 янв 04, 21:34 - "есть занятная проблема. ситуация: есть таблица (любая), в которой есть primary key, который, например, задаётся так id int not null GENERATED BY DEFAULT AS IDENTITY" It was not a question about SEQUENCE.... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.02.2004, 22:33 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=43&msg=32409954&tid=1606344]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    47ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    52ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 13ms | 
| total: | 154ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.