kordoni Δημοσ. 23 Μαΐου 2018 Δημοσ. 23 Μαΐου 2018 (επεξεργασμένο) Εχει νοημα ενα πληρως dynamic prepared statement σε postgresql ? Να μην ειναι dynamic μονο το WHERE και τα values, αλλα και το table και τι θα κανει select. Εχω node + express + postgresql + pg module, αλλα νομιζω οι αρχες ειναι ιδιες παντου , ανεξαρτητως stack. Εχω το εξης απλο, συμφωνα με το pg //dynamic that can change let select = 'name , email, age'; let table = 'user'; let where = 'id=$1 AND gender=$2'; let values = [1,'female']; //prepare const query = { // give the query a unique name name: 'fetch-user', text: 'SELECT' + select + 'FROM' + table + 'WHERE' + where, values: values } //execute client.query(query) .then(res => console.log(res.rows[0])) .catch(e => console.error(e.stack)) Απο οτι εχω καταλαβει απο το documentation, για να ειναι αποδοτικο ενα prepared statement και να μπορει να γινει σωστο planning, τοτε πρεπει να ειναι δυναμικα μονο το WHERE και τα values. Αν πρεπει να κανει καθε φορα εξαρχης figure out γιατι πεδια και table μιλαμε, τοτε η ταχυτητα του πεφτει, οποτε χανει και το νοημα του. Ειναι οντως ετσι? Να κρατησω την παραπανω δυναμικη συνταξη? Η να ανταλλαξω το DRY για να φτιαξω ξεχωριστα queries για καθε ξεχωριστο πινακα? Ευχαριστω Επεξ/σία 23 Μαΐου 2018 από kordoni
defacer Δημοσ. 23 Μαΐου 2018 Δημοσ. 23 Μαΐου 2018 Αυτό που έχεις δεν είναι δυναμικό με την έννοια της λέξης που χρησιμοποιείς παραπάνω. Δεν την ενδιαφέρει τη βάση ούτε και έχει τρόπο να ξέρει αν πώς έφτιαξες το string της sql πριν το στείλεις. Το μόνο που ενδιαφέρει είναι οι placeholders.
kordoni Δημοσ. 23 Μαΐου 2018 Μέλος Δημοσ. 23 Μαΐου 2018 Παιζει μην εχω γινει σαφης εγω. Το παρακατω //dynamic that can change let select = 'name , email, age'; let table = 'user'; let where = 'id=$1 AND gender=$2'; let values = [1,'female']; θα αλλαζει, αναλογα με το σε ποια function ειμαι πχ //dynamic that can change let select = 'id , description, color'; let table = 'product'; let where = 'category=$2'; let values = [28]; Αν ακομα και ετσι, ισχυουν αυτα που ειπες παραπανω, τοτε μπορω να εχω prepared statements με διαφορετικες τιμες. Ευχαριστω και παλι
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα