全部產品
Search
文件中心

ApsaraDB RDS:常用操作及相容性說明

更新時間:Feb 28, 2024

本文介紹通過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;