Comment remedier à ajouter 1 colonne de tri supplémentaire a toutes mes tables
2 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ***********************
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 ***********************
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 ***********************
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
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.
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.