Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment remedier à ajouter 1 colonne de tri supplémentaire a toutes mes tables

2 réponses
Avatar
Jo
Bonsoir à tous,
Dans une application déjà existante (php + oracle) il a été décidé,
malheureusement d'ajouter à TOUTES les tables de la DB une colonne
supplémentaire de tri.

A chaque requete insert, update, select, il va falloir ajouter une
clause where colonnetri=predicat.
Comment peut on s'y prendre pour ne pas remodifier toutes nos requetes,
y'a t il une solution ou est on dans la ... mouise, snif.

Je précise, que les requetes sont codées dans le php et qu'il y'a des
requêtes imbriquées.
On a chercher pour un parser php sql, mais dur à trouver pour oracle et
c'est des trucs qui sont énormes à rajouter dans l'appli et a prendre en
main.

Une idée lumineuse, une suggestion ??

Merci pour votre aide

2 réponses

Avatar
Fred Brouard - SQLpro
Pour vos SELECT, encapsulez toutes vos requêtes dans le code SQL suivant :

SELECT *
FROM
(
...
) T
WHERE COLONNE_TRI = PREDICAT

ou ... est l'ancienne requête

A +

Jo a écrit:
Bonsoir à tous,
Dans une application déjà existante (php + oracle) il a été décidé,
malheureusement d'ajouter à TOUTES les tables de la DB une colonne
supplémentaire de tri.

A chaque requete insert, update, select, il va falloir ajouter une
clause where colonnetri=predicat.
Comment peut on s'y prendre pour ne pas remodifier toutes nos requetes,
y'a t il une solution ou est on dans la ... mouise, snif.

Je précise, que les requetes sont codées dans le php et qu'il y'a des
requêtes imbriquées.
On a chercher pour un parser php sql, mais dur à trouver pour oracle et
c'est des trucs qui sont énormes à rajouter dans l'appli et a prendre en
main.

Une idée lumineuse, une suggestion ??

Merci pour votre aide



--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Jo
Merci pour votre réponse,
mais je me suis peut être mal expliqué, ou j'ai surement pas compris
votre réponse.

En fait ce que je souhaite, c'est ne PAS retoucher à mes requetes qui
sont deja dans le code php, requetes du style:
select code from table1 where code not in (select code from table2)

la colonne de tri supplémentaire est sur table1 et table2

La solution que je veux éviter c'est de réécrire la requete :
select code from table1 where colonnetri=predicat and code not in
(select code from table1 where colonnetri=predicat)

Est ce que votre solution est :

select * from
(
select code from table1 where code not in (select code from table2)
)
where colonnetri=predicat

est ce que le requeteur ne va pas me dire de préciser la colonne de
quelle table ???
Sinon ce serait une super solution, j'essaierai mardi, car lundi je suis
en RTT
Qu'en est il des requetes avec les insert et delete???

Et comment detecter de facon automatique le select et l'encapsuler dans
la requete que vous m'avez donné.

Encore plein de questions...
Merci pour vos réponses


Fred Brouard - SQLpro a écrit :
Pour vos SELECT, encapsulez toutes vos requêtes dans le code SQL suivant :

SELECT *
FROM
(
...
) T
WHERE COLONNE_TRI = PREDICAT

ou ... est l'ancienne requête

A +

Jo a écrit:

Bonsoir à tous,
Dans une application déjà existante (php + oracle) il a été décidé,
malheureusement d'ajouter à TOUTES les tables de la DB une colonne
supplémentaire de tri.

A chaque requete insert, update, select, il va falloir ajouter une
clause where colonnetri=predicat.
Comment peut on s'y prendre pour ne pas remodifier toutes nos
requetes, y'a t il une solution ou est on dans la ... mouise, snif.

Je précise, que les requetes sont codées dans le php et qu'il y'a des
requêtes imbriquées.
On a chercher pour un parser php sql, mais dur à trouver pour oracle
et c'est des trucs qui sont énormes à rajouter dans l'appli et a
prendre en main.

Une idée lumineuse, une suggestion ??

Merci pour votre aide