PostgreSQL için Azure Veritabanı'de saklı yordam oluşturma

Tamamlandı

Belirli bir görev için saklı yordam oluşturmanın, PostgreSQL için Azure veritabanınızın işlevselliğini genişletme gibi birçok avantajı vardır. Aşağıdaki işlemleri yapmak istediğinizde saklı yordam kullanın:

  • Karmaşık kodu tek bir yerde geliştirin ve test edin, ardından gerektiğinde bu kodu çağırın.
  • Kodu verimli bir şekilde yürütür. Azure Veritabanı PostgreSQL sunucusunda önceden derlenip depolandığından aynı sonucu döndüren saklı yordamlar daha verimlidir.
  • Kodunuzun daha kolay okunmasını sağlayın.
  • Bir işlem içinde hata işlemeyi dahil etme.
  • Karmaşıklığı kullanıcılardan gizleyin.

PostgreSQL için Azure Veritabanı birden çok programlama dilini desteklese de SQL, PostgreSQL'in ana dilidir ve iyileştirici ile en iyi şekilde çalışır.

CREATE PROCEDURE anahtar sözcükleriyle bir saklı yordam oluşturulur. Alternatif olarak, yeni bir yordam oluşturmak veya bir yordamı aynı adla değiştirmek için CREATE OR REPLACE PROCEDURE komutunu kullanın.

Yordamı belirli bir şemada oluşturmak için bir şema adı ekleyin. Aksi takdirde, geçerli şemada oluşturulur. Yordam adı, giriş bağımsız değişkeni türleri de dahil olmak üzere şema içinde benzersiz olmalıdır. Ancak, farklı bağımsız değişken türlerine sahip bir yordama veya işleve aynı adı vererek yordam adlarını aşırı yükleyebilirsiniz.

Yordamı oluşturan kullanıcı, yordamın sahibidir. Dili de belirtmeniz gerekir.

Yordamlar aşağıdaki parametreleri alır:

  • name - isteğe bağlı olarak şema adını ekleyin.
  • argmode - bağımsız değişkenin modu. IN, INOUT veya VARIADIC olabilir. Varsayılan değer IN'dir. OUT desteklenmez; yerine INOUT kullanın. VARDIADIC, aynı türde tanımlanmamış sayıda giriş bağımsız değişkenidir ve son giriş bağımsız değişkenleri olmalıdır.
  • argname - bağımsız değişken adı.
  • argtype - bağımsız değişken veri türü.
  • default_expr - parametre belirtilmezse kullanılacak varsayılan ifade (aynı türde). Varsayılan değere sahip bir parametreyi izleyen giriş parametreleri de varsayılan değerlere sahip olmalıdır.
  • lang_name - yordamı yazmak için kullanılan dil. sql, c, internal veya kullanıcı tanımlı yordam dilinin adı (örneğin, plpgsql) olabilir.

Aşağıdaki örnekte, a ve b giriş parametrelerini alan myprocedure adlı bir saklı yordam oluşturulur. IN, parametreler için varsayılan değerdir, bu nedenle bunları giriş parametreleri olarak açıkça tanımlamamız gerekmez. Saklı yordam çağrıldığında, bu parametrelere atanan değerler mytable'a eklenir.

CREATE PROCEDURE myprocedure (a integer, b integer)
    LANGUAGE SQL
    AS $$
        INSERT INTO mytable VALUES (a, b);
    $$;

Simge $$ , bir dizeyi başlatmak ve sonlandırmak için kullanılır. Tek tırnak işaretlerini de kullanabilirsiniz, ancak diğer programlama dillerinde sorunlara neden olabilir, bu nedenle $$ tercih edilir.