2015-04-18 17 views
5

Veritabanımı Google Cloud SQL'e aktardım, ancak FAQ on Google Cloud SQL'da belirtildiği gibi, kullanıcı tanımlı işlevlerin desteklenmediğini söylüyor. Veritabanımda oluşturduğum bir sözlükte arama yapmak için bu stackoverflow article'dan alınan Levenshtein adlı bir işlev kullanıyorum. Benzer (benzeyen yazımlar dahil) gibi görünen kelimeleri bulabilen ve belirli bir kelimeden uzaklığı geri döndüren bir işlevdir.Google'ın Cloud SQL'de kullanıcı tanımlı işlevlerine alternatif

Google, kullanıcı tanımlı işlevler için arama yapmak için bu işlevi kullanmama izin verecek alternatifler sunuyor mu?

+1

Hayır öyle değil. Ancak gce kullanabilirsiniz ve orada istediğiniz herhangi bir veritabanını kullanabilirsiniz. –

+0

Evet, CloudSQL aslında MySQL'i korumalı olarak çalıştırıyor, bu yüzden bir Compute Engine örneğindeki MySQL (veya başka bir DB) çalıştırmanız en iyi çözüm olabilir. – Adam

+0

, Google'ın bunu desteklemediği bir durumdur. Bulut tabanlı bir altyapıyı düşünmemizin nedenlerinden biri, güç, performans ve ölçeklenebilirlikten yararlanmak için db'yi CloudSQL'e geçirme yeteneğidir, bu nedenle uygulamanızı UDF'ye depolamak ve depolamak prosedürleri. – neavilag

cevap

7

Sen terminoloji hakkında karıştı:

  • Kullanıcı Tanımlı Fonksiyon bir DLL içine derlenmiş gerçek kodunda tanımlanan bir işlev, =/SO ve CREATE FUNCTION ... SONAME ile MySQL yarattı. Cloud SQL'de bu mümkün değildir. Yordam Saklı

  • CREATE FUNCTION routine_body veya CREATE PROCEDURE ile MySQL SQL ifadelerinin tanımlanan ve oluşturulan bir fonksiyonu =. Bu Cloud SQL'de izin verilir.

Sadece kopyalama ve benim Cloud SQL örneğine definition from that SO post yapıştırarak bu test etti ve mükemmel çalıştı.

+0

Anlaşmalı. Depolanmış Prosedürü kastettim. Ben SO makaleden kodu test ettim ve bazı SQL hataları verdi, ancak bu işlevini yarattı. Yardım için teşekkürler! –

İlgili konular