すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:一般的な操作と互換性の説明

最終更新日:Jan 16, 2024

Babelfishが有効になっているApsaraDB RDS for PostgreSQLインスタンスに、表形式データストリーム (TDS) ポートを介して接続できます。 このトピックでは、接続後のRDSインスタンスのSQL文の一般的な操作と互換性について説明します。

一般的な操作

カテゴリサンプルSQL文
システムクエリデータベースのバージョンを照会します。
SELECT @ @ バージョン;
データベースの情報を照会します。
SELECT * FROM sys.databases;
データベース関連の操作データベースを作成します。
CREATE DATABASE testdb;
説明 Single-DB移行モードを使用する場合、作成できるデータベースは1つだけです。 データベースを作成した場合、別のデータベースを作成することはできません。
データベースを照会します。
SELECT * FROM sys.databases WHERE name = 'testdb';
別のデータベースに切り替えます。
使用testdb
GO
SELECT db_name(); 
データベースの削除
ドロップデータベースtestdb;
スキーマ関連の操作スキーマを作成します。
SCHEMA sch_demoを作成します。
スキーマを表示します。
SELECT * FROM sys.schemas AS sch WHER E sch.name = 'sch_demo';
スキーマを使用してテーブルを作成します。
CREATE TABLE sch_demo.tb_demo(id int);

選択
    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
WHER E tb.name = 'tb_demo'; 
スキーマを削除します。
説明 スキーマを使用してテーブルを作成する場合は、スキーマを削除する前にテーブルを削除する必要があります。
ドロップテーブルsch_demo.tb_demo;
GO

ドロップSCHEMA sch_demo;
GO 
テーブル関連の操作テーブルを作成します。
使用testdb
GO

CREATE TABLE dbo.tb_test (
    id int not null IDENTITY(1,1) PRIMARY KEY,
    名前varchar (50)
GO 
テーブルを照会します。
SELEC T 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
WHER E tb.name = 'tb_test';
GO 
フィールドを作成します。
ALTER TABLE dbo.tb_test ADD col_added bigint null;
GO 
テーブルのフィールドを変更します。
ALTER TABLE dbo.tb_test ALTER列col_added varchar(50);
GO 
テーブルからフィールドを削除します。
ALTER TABLE dbo.tb_test DROP列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
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
トップを削除 (1) dbo.tb_testから;
GO

SELECT * FROM dbo.tb_test; 
ストアドプロシージャに関連する操作ストアドプロシージャを作成します。
使用testdb
GO

PROC dbo.UP_getDemoDataの作成 (
    @ id int
)
AS
開始
    セットNOCOUNT ON
    SELECT *
    dbo.tb_testから
    WHERE id = @ id
エンド;
GO 
ストアドプロシージャを表示します。
SELECT *
FROM sys.procedures
WHERE name = 'up_getdemodata'; 
ストアドプロシージャを実行します。
EXEC dbo.UP_getDemoData @ id = 7;
GO 
ストアドプロシージャを削除します。
使用testdb
GO
DROP PROC dbo.UP_getDemoData
GO 

互換性

説明 このセクションでは、一般的な非互換性シナリオのみを示します。 詳細については、「Babelfish For PostgreSQL公式ドキュメント」をご参照ください。
次のSQL文は、Babelfishが有効になっているRDSインスタンスではサポートされていません。
  • テーブルのスキーマを表示します。 例:
    EXEC sp_help 'dbo.tb_test '
  • テーブルのフィールドを変更するときは、デフォルト値をnullに設定します。 例:
    ALTER TABLE dbo.tb_test ALTER列col_added varchar (50) null;
    GO 
  • インデックスを再作成します。 インデックスを削除してから、インデックスを作成することを推奨します。 例:
    tb_test REBUILDのALTER INDEX ix_tb_test_name;
    GO 
  • ストアドプロシージャを変更します。 ストアドプロシージャを削除してから、ストアドプロシージャを作成することを推奨します。 例:
    testdbを使用
    GO
    
    ALTER PROC dbo.UP_getDemoData ()
        @ id int
    )
    AS
    開始
        セットNOCOUNT ON
        SELECT *
        dbo.tb_testから
        WHERE id >= @ id
    エンド;
    GO 
  • 実行プランを照会します。 例:
    SET showplan_xml ON
    SELECT * from tb_test;