怎样将以下mssql语句转换成postgresql语句呢?解决方法

怎样将以下mssql语句转换成postgresql语句呢?

CREATE   TABLE   [dbo].[Client]   (

[Name]   [char]   (15)   COLLATE   Chinese_PRC_CI_AS   NULL   ,

[Phone]   [char]   (12)   COLLATE   Chinese_PRC_CI_AS   NULL  

)   ON   [PRIMARY]

GO

请问各位大侠,如何将以上mssql语句转换为postgresql语句呢?

小女子有3点不明白怎么转换,网上查了好多资料也没结果,望有高人指点啊,

感激不尽!

1、字符串排列顺序的“COLLATE   Chinese_PRC_CI_AS   ”在postgresql中应该怎么表示呢?

2、文件组“ON   [PRIMARY]”如何转换?

3、还有GO?



1、一样

2、去掉就行,这个是MSSQL 默认的。不写也罢。

3、Go变为;




Chinese_PRC_CI_AS不是MYsql可以辨认的字符集校对规则。

换成 gb2312_chinese_ci 或者 gbk_chinese_ci 看看。




从你提供的原始的脚本来看:

CREATE TABLE [dbo].[Client] (

[Name] [char] (15) COLLATE Chinese_PRC_CI_AS NULL ,

[Phone] [char] (12) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

这段脚本应该是从企业管理器中倒出来的,其中很多本可以不用显示的缺省的值也显示出来,这些值在实际创建中是可以不需要的,你可以在MSSQL中这样创建表:

CREATE TABLE [dbo].[Client] (

[Name] [char] (15) NULL ,

[Phone] [char] (12) NULL

)

GO

这样,换成postgresql可以这样写:

CREATE TABLE Client (

[Name] char(15) NULL ,

[Phone] char(12) NULL

);

几个解释和说明:

1、 postgresql目前好像不支持独立字段的排列顺序,好像只和库设置的字符集有关。

2、在MSSQL中文件组“ON [PRIMARY]”是指表的存放位置,“ON [PRIMARY]”是缺省位置。postgresql也有缺省位置pg_default。如果没有必要可以不用加这个内容。如果你们需要多个表空间之类的,可以在建表语句最后加上 ON tablespace_name, tablespace_name是你想把这个表放在那个表空间的表空间名字。

3、在MSSQL中GO表示一个SQL语句的结束,在postgresql中用 “; “来表示。

4、从表设计上讲Name和Phone用变长字符串更好一点,在MSSQL和postgresql都用varchar数据类型。

怎样将以下mssql语句转换成postgresql语句呢?解决方法

相关文章:

你感兴趣的文章:

标签云: