Babelfish for RDS PostgreSQL常用操作及兼容性说明

本文介绍通过TDS端口连接Bablefish for RDS PostgreSQL实例后的常见操作,以及SQL的兼容情况说明。

常见操作

操作类别SQL示例
系统查询查询版本
SELECT @@version;
查询数据库信息
SELECT * FROM sys.databases;
数据库操作创建数据库
CREATE DATABASE testdb;

说明 迁移模式为single-db时,只支持创建一个数据库,如果您已创建了一个数据库,则无法再次创建。

查询数据库
SELECT * FROM sys.databases WHERE name = 'testdb';
切换数据库
USE testdb
GO
SELECT db_name();
删除数据库
DROP DATABASE testdb;
Schema操作创建Schema
CREATE SCHEMA sch_demo;
查看Schema
SELECT * FROM sys.schemas AS sch WHERE sch.name = 'sch_demo';
创建Schema下表
CREATE TABLE sch_demo.tb_demo(id int);

SELECT
    sch.name AS schema_name,
    tb.name AS table_name
FROM sys.tables AS tb
    INNER JOIN  sys.schemas AS sch
    ON tb.schema_id = sch.schema_id
WHERE tb.name = 'tb_demo';
删除Schema

说明 如果Schema下存在表,需要先删除表后,再删除Schema。

DROP TABLE sch_demo.tb_demo;
GO

DROP SCHEMA sch_demo;
GO
表操作新建表
USE testdb
GO

CREATE TABLE dbo.tb_test(
    id int not null IDENTITY(1,1) PRIMARY KEY,
    name varchar(50))
GO
查询表
SELECT sche.name AS schema_name, tb.name AS table_name
FROM sys.tables AS tb
    INNER JOIN sys.schemas AS sche
    ON tb.schema_id = sche.schema_id
WHERE tb.name = 'tb_test';
GO
新增字段
ALTER TABLE dbo.tb_test ADD col_added bigint null;
GO
修改表字段
ALTER TABLE dbo.tb_test ALTER column col_added varchar(50);
GO
删除表字段
ALTER TABLE dbo.tb_test DROP column col_added;
GO
创建索引
CREATE INDEX ix_tb_test_name ON tb_test(name);
GO
删除索引
DROP INDEX ix_tb_test_name ON tb_test;
GO
数据库操作INSERT
INSERT INTO dbo.tb_test
SELECT 'A' UNION ALL
SELECT 'B';
GO
SELECT
SELECT * FROM dbo.tb_test;
UPDATE
UPDATE TOP(1) dbo.tb_test
SET name = 'A_updated';
GO
DELETE
DELETE TOP(1) FROM dbo.tb_test;
GO

SELECT * FROM dbo.tb_test;
存储过程创建存储过程
USE testdb
GO

CREATE PROC dbo.UP_getDemoData(
    @id int
)
AS
BEGIN
    SET NOCOUNT ON
    SELECT *
    FROM dbo.tb_test
    WHERE id = @id
END;
GO
查看存储过程
SELECT *
FROM sys.procedures
WHERE name = 'up_getdemodata';
执行存储过程
EXEC dbo.UP_getDemoData @id = 7;
GO
删除存储过程
USE testdb
GO
DROP PROC dbo.UP_getDemoData
GO

兼容性说明

说明 本文仅介绍了部分常见不兼容场景,更多信息,请参见Babelfish for PostgreSQL官方文档

不支持的SQL操作如下:

  • 查看表结构。
    EXEC sp_help 'dbo.tb_test'
  • 不支持在修改表字段时设置默认值NULL。
    ALTER TABLE dbo.tb_test ALTER column col_added varchar(50) null;
    GO
  • 不支持重建索引,建议删除后,重新创建。
    ALTER INDEX ix_tb_test_name ON tb_test REBUILD;
    GO
  • 不支持修改存储过程,建议删除后,重新创建。
    USE testdb
    GO
    
    ALTER PROC dbo.UP_getDemoData(
        @id int
    )
    AS
    BEGIN
        SET NOCOUNT ON
        SELECT *
        FROM dbo.tb_test
        WHERE id >= @id
    END;
    GO
  • 不支持执行计划(showplan_xml)。
    SET showplan_xml ON
    SELECT * from tb_test;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值