• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 7年前 (2018-06-01) 140次浏览 已收录 0个评论

怎样将以下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数据类型。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:怎样将以下mssql语句转换成postgresql语句呢?解决方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址