MS SQL Server->PostrgeSQL: GUID ?

Winnipuh
Дата: 13.01.2004 15:53:03
Можно ли в линуксе или фрибсд генерировать GUID?
Есть приложение и база под MS SQL Server, хочу сделать light версию продукта, т.е. в качестве сервера баз использовать PostgreSQL.
Вопрос в следующем: в базе MS SQL Server используются поля типа uniqueidentifier. Как их перенести и соответственно как генерировать в базе (триггер, процедура) гуиды?
Hordi
Дата: 15.01.2004 15:39:58
GUID в полном понимании нет(т.е. в смысле, что на любых хостах и в любой момент времени генеряться уникальные значения).

А для уникальности можешь завести в таблице поле типа SERIAL, - получишь автоинкрементные поля, создашь UNIQUE INDEX - вот тебе и уникальные значения, - повторяться однозначно не будут. Далее пишешь тригер или функцию типа SELECT nextval('..._seq') - возвращать всегда будет новое число.

Успехов
Winnipuh
Дата: 16.01.2004 12:25:47
Все бы хорошо, но задача стоит в том, чтобы перенести и адаптировать базу с MS SQL Server на PostgreSQL. А в ней уже используются гуиды, причем, что не очень хорошо, это то, что в некоторых таблицах при вставке записи испоьзуется функция на newid(), которая создает гуид.
www.fun4me.narod.ru
Дата: 22.01.2004 14:54:48
Ну вот и просто заменяешь тип uniqueidentifier на integer и пишешь функцию newid, которая возвращает какой-нибудь nextval('global_database_seq'). А для импорта-экспорта данных пишешь специальное средство.
И всё.