> I believe: > IDENTITY(1, 1) just means "Primary Key" in M$SQL >
IDENTITY is not obligatory a primary key. It's an auto-incremented column. It might correspond to a PostgreSQL sequence. [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts _ia-iz_3iex.asp] > numeric 18,0 means a numeric field of zero decimal points. Hence we are > looking at a 18 byte integer. bigint is not big enough, so probably > should use the same in numeric 18,0 in postgres > numeric[ (precision[ , scale] )], where precision refers to the maximum total number of decimal digits that can be stored. The default precision is 18, and for such a value the storage is of 9 bytes. [http://msdn2.microsoft.com/en-us/library/ms187746.aspx] Because it seems that a default value has been used here, I'd say that Kenneth doesn't have any particular requirement, haven't you Kenneth?... :-) An int or a bigint would be perhaps sufficient. My two cents. I don't know whether Kenneth requires migrating database structure only or whether he needs to migrate data too. When migrating data, Kenneth might want to define a sequence which start value begins at the next value of its IDENTITY column (cf. IDENT_SEED(my_table)). [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts _ia-iz_9yxw.asp] Kenneth might want to transfer his data first and to define the sequence after (for transfer performance reason?): CREATE TABLE my_table ( Id INTEGER NOT NULL, ... ); [DTS process here] CREATE SEQUENCE my_sequence INCREMENT BY 1 MINVALUE 1 NO MAXVALUE START WITH <IDENTITY current value + 1> CACHE 1 NO CYCLE; ALTER TABLE m_table ALTER COLUMN Id SET DEFAULT NEXTVAL('my_sequence'); Does that make sense? -- Daniel ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match