2011-11-16 9 views
21

मैं ओपन सोर्स सीएमएस पिमकोर (http://www.pimcore.org) का उपयोग कर रहा हूं, जो एक MySQL बैकएंड पर चलता है।टूटे हुए SQL व्यू को कैसे ठीक करें

यह वस्तुओं का प्रतिनिधित्व करने के लिए काफी जटिल विचारों का उपयोग करता है और उनमें से एक कुछ चरण में टूट गया है जब दृश्य द्वारा संदर्भित किसी अन्य तालिका में एक स्तंभ का नाम बदल दिया गया था। मैं त्रुटि प्राप्त जब भी मैं SQL कमांड के माध्यम तालिका के साथ बातचीत करने का प्रयास करें:

View 'barriste_website.object_6' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

मैं बस बदले नामों वाले कॉलमों को संदर्भित करने के दृश्य को अपडेट करना चाहते हैं, लेकिन मैं मैं से पहले देखने की वर्तमान संरचना जानने की जरूरत चारों ओर घूमना शुरू करें - इसे तोड़ने के बाद दृश्य की संरचना को वास्तव में कैसे प्राप्त किया जाए? मैंने कोशिश की है

SHOW CREATE VIEW object_6 

लेकिन मुझे एक ही त्रुटि मिलती है।

अग्रिम में आपकी सहायता के लिए धन्यवाद!

उत्तर

23

MySQL:

SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS 
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v'; 

संदर्भ: The INFORMATION_SCHEMA VIEWS Table

एसक्यूएल सर्वर:

USE databasename 
GO 

EXEC sp_helptext viewName 

या भी इस तरह एक प्रश्न:

SELECT TABLE_NAME as ViewName, 
VIEW_DEFINITION as ViewDefinition 
FROM INFORMATION_SCHEMA.Views 

आप जोड़ सकते हैं, जहां एक WHERE केवल एक

+0

धन्यवाद डेविड - मुझे लगता है कि sp_helptext केवल एमएसएसएलएल है, मुझे MySQL की आवश्यकता है। –

+1

दूसरा समाधान अच्छी तरह से काम करता है, बहुत बहुत धन्यवाद। –

5

दृश्य पुनः प्राप्त करने के लिए बस के साथ "ड्रॉप दृश्य object_6", तो pimcore बैकएंड में जाकर वर्ग फिर से बचाने के दृश्य को हटाने के। दृश्य को फिर से स्वचालित रूप से पुन: उत्पन्न किया जाता है।

+0

एक अच्छा विचार की तरह नहीं लगता है, हटाना SQL कथन के सभी संदर्भ को हटा देगा, जिसे संदर्भित तालिका में कॉलम नाम बदलने के बाद दृश्य को पुन: संकलित करने के लिए आवश्यक है। –

संबंधित मुद्दे