2011-08-24 4 views
0

Je souhaite exécuter la requête suivante dans "Activerecord". Comment puis je faire ça? S'il vous plaît aidez-moi ..Activerecord - Exécution de requêtes complexes

query = "SELECT rc.constraint_schema||'.'||tc.table_name AS table_name, kcu.column_name FROM information_schema.referential_constraints AS rc JOIN information_schema.table_constraints AS tc USING(constraint_catalog,constraint_schema,constraint_name) JOIN information_schema.key_column_usage AS kcu USING(constraint_catalog,constraint_schema,constraint_name) JOIN information_schema.key_column_usage AS ccu ON(ccu.constraint_catalog=rc.unique_constraint_catalog AND ccu.constraint_schema=rc.unique_constraint_schema AND ccu.constraint_name=rc.unique_constraint_name) WHERE ccu.table_catalog=\"#{connection_parameters['database']}\" AND ccu.table_schema=\"#{connection_parameters['schema_search_path']}\" AND ccu.table_name=\"#{tab}\" AND ccu.column_name=\"#{select}\"" 

Répondre

0

Vous pouvez utiliser select_rows à l'intérieur d'une méthode de modèle:

def some_method 
    query = "... big pile of SQL ..." 
    connection.select_rows(sql).each do |row| 
     table_name, column_name = *row 
     #... 
    end 
end