全部产品
Search
文档中心

ApsaraDB RDS:Operasi umum dan deskripsi kompatibilitas

更新时间:Jun 25, 2025

Anda dapat terhubung ke instance ApsaraDB RDS for PostgreSQL dengan Babelfish diaktifkan melalui port Tabular Data Stream (TDS). Topik ini menjelaskan operasi umum dan kompatibilitas Pernyataan SQL dari instance RDS setelah koneksi dilakukan.

Operasi umum

KategoriContoh pernyataan SQL
Kueri sistemKueri versi database.
SELECT @@version;
Kueri informasi database.
SELECT * FROM sys.databases;
Operasi terkait databaseBuat database.
CREATE DATABASE testdb;
Catatan Jika Anda menggunakan mode migrasi Single-DB, Anda hanya dapat membuat satu database. Jika Anda telah membuat database, Anda tidak dapat membuat database lainnya.
Kueri database.
SELECT * FROM sys.databases WHERE name = 'testdb';
Beralih ke database lain.
USE testdb
GO
SELECT db_name();
Hapus database.
DROP DATABASE testdb;
Operasi terkait skemaBuat skema.
CREATE SCHEMA sch_demo;
Lihat skema.
SELECT * FROM sys.schemas AS sch WHERE sch.name = 'sch_demo';
Gunakan skema untuk membuat tabel.
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';
Hapus skema.
Catatan Jika tabel dibuat menggunakan skema, Anda harus menghapus tabel sebelum menghapus skema.
DROP TABLE sch_demo.tb_demo;
GO

DROP SCHEMA sch_demo;
GO
Operasi terkait tabelBuat tabel.
USE testdb
GO

CREATE TABLE dbo.tb_test(
    id int not null IDENTITY(1,1) PRIMARY KEY,
    name varchar(50))
GO
Kueri tabel.
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
Buat kolom.
ALTER TABLE dbo.tb_test ADD col_added bigint null;
GO
Ubah kolom dalam tabel.
ALTER TABLE dbo.tb_test ALTER column col_added varchar(50);
GO
Hapus kolom dari tabel.
ALTER TABLE dbo.tb_test DROP column col_added;
GO
Buat indeks.
CREATE INDEX ix_tb_test_name ON tb_test(name);
GO
Hapus indeks.
DROP INDEX ix_tb_test_name ON tb_test;
GO
Operasi terkait databaseINSERT
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;
Operasi terkait prosedur tersimpanBuat prosedur tersimpan.
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
Lihat prosedur tersimpan.
SELECT *
FROM sys.procedures
WHERE name = 'up_getdemodata';
Eksekusi prosedur tersimpan.
EXEC dbo.UP_getDemoData @id = 7;
GO
Hapus prosedur tersimpan.
USE testdb
GO
DROP PROC dbo.UP_getDemoData
GO

Kompatibilitas

Catatan Bagian ini hanya mencakup skenario inkompatibilitas umum. Untuk informasi lebih lanjut, lihat Dokumentasi Resmi Babelfish for PostgreSQL.
Pernyataan SQL berikut tidak didukung untuk instance RDS yang memiliki Babelfish diaktifkan:
  • Melihat skema tabel. Contoh:
    EXEC sp_help 'dbo.tb_test'
  • Mengubah kolom dalam tabel dengan menetapkan nilai default menjadi null. Contoh:
    ALTER TABLE dbo.tb_test ALTER column col_added varchar(50) null;
    GO
  • Membuat ulang indeks. Disarankan untuk menghapus indeks lalu membuat indeks baru. Contoh:
    ALTER INDEX ix_tb_test_name ON tb_test REBUILD;
    GO
  • Mengubah prosedur tersimpan. Disarankan untuk menghapus prosedur tersimpan lalu membuat prosedur tersimpan baru. Contoh:
    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
  • Menjalankan kueri rencana eksekusi. Contoh:
    SET showplan_xml ON
    SELECT * from tb_test;