Автоматическое создание направляющих в Sybase - PullRequest
0 голосов
/ 15 апреля 2010

У меня есть таблица с 42 миллионами записей. 32 миллиона имеют нулевое значение, и я хотел бы создать новый guid для каждого. Должен ли я делать это партиями?

Кроме того, я хотел бы, чтобы в поле ввода новой записи был добавлен новый гид. Каков наилучший способ сделать это?

Поле не является первичным ключом, которое представляет собой целое число с автоинкрементом.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2010

Существует функция newid () для генерации guid. Ваш столбец должен быть varchar (32) (или varbinary (16)) или больше. Вам следует запускать обновление партиями, чтобы не заполнять журнал транзакций, например,

set rowcount 10000
while exists (select 1 from mytab where myid is null)
  update mytab set myid = newid() where myid is null
set rowcount 0

Вам не нужен триггер - просто привяжите функцию в качестве столбца по умолчанию. В документации Sybase есть пример.

0 голосов
/ 17 апреля 2010

Вы пробовали вставить триггер?

...