Bon, vu que tous les DBA SQL persistent à (faire semblant de) ne pas comprendre:
ok ça va calmez vous oubliez le mot difficile et remplacez par : beaucoup trop verbeux eu égard au fait que ce type de requête est plutôt fréquent. ça va comme ça?
Non? ok je précise encore
Répéter trois fois "select * from R1", c'est un coup à faire des erreurs (encore ici on a de la chance que tous les select aient la même liste de colonnes...)
N'importe quel langage de programmation a aujourd'hui un opérateur OU PARESSEUX (si quelqu'un a une meilleure traduction je suis preneur) qui correspond précisément à cette requête.
Il m'aurait paru logique d'écrire quelque chose comme
ou, pour avoir plus de souplesse (je rajoute un champ juste pour montrer l'intérêt)
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from demo where src = ? or else src like ?
Avant de hurler, oui je sais c'est pas du SQL, c'est juste ce que n'importe quel langage de programmation digne de ce nom aurait permis de faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (select *, 'exact' as type from demo where src = ?) or else (select *, 'fuzzy' as type from demo src like ?)
Ah oui mais SQL n'est pas un langage de programmation, c'est sûrement ça...
Si tu fais toujours des recherches exactes, sans doute. Dans le monde de la traduction, en revanche, on fait beaucoup de recherches approchantes (objectif: permettre à un traducteur de s'inspirer de textes similaires traduits il y a longtemps) et là je préfère de loin que le traducteur voit des exemples datant de plusieurs mois (et qui ont donc été validés depuis longtemps) plutôt que de le voir quitter l'application parce qu'à chaque phrase traduite il perd dix secondes parce que le système attend que tous les nœuds aient confirmé le commit avant de rendre la main.
En plus dans notre cas c'est d'avantage des INSERT et très peu d'UPDATE, donc la synchronisation à postériori (faite pendant la nuit de façon automatique) ne présente pas beaucoup de difficultés.
Je ne prends pas ce cas pour une généralité, je dis juste que la contrainte de cohérence n'en est pas une dans certains cas.
Et moi non plus je ne jette pas complètement SQL, je préfère juste varier les outils suivant le problème posé plutôt que de partir du principe que tout doit être fait à l'identique.
Partager