Matin SO.Comment déterminer si une requête SQL est un SELECT?
EDIT
Je voudrais faire une validation des requêtes SQL pour vérifier que cette requête est une commande SELECT et non un UPDATE ou DELETE ou une instruction INSERT ou toute déclaration bizarre sql.
Je sais que la meilleure façon est de faire correspondre "^ SELECT" MAIS:
une requête peut commencer par "(" comme
(SELECT * FROM blah WHERE id> 1 LIMITE 3) UNION (SELECT * ...)
une requête peut commencer par "aVEC RÉCURSIVE"
aVEC cte récursive (SELECT * FROM blah)
Je voudrais déterminer si une requête SQL est un SELECT. Eh bien, je ne sais pas s'il y a des requêtes bizarres que je dois savoir avant d'écrire une regexp.
Toute aide est appréciée.
EDIT: Je veux vérifier si elle est une PURE requête de sélection :)
Quelle saveur de SQL essayez-vous d'analyser? Différents fournisseurs offrent une syntaxe et des options différentes, bien que votre exemple semble être un CTE sur SQL Server. – Oded
il ne peut pas être spécifique au vendeur – dzen
semble que ce n'est pas spécifique à SQL Server: http://www.davidcramer.net/code/django/6939/scaling-threaded-comments-on-django-at-disqus.html – dzen