|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 3852
|
[SQL] Ordinamento valori tabelle nei backup
Ho l'esigenza di ordinare le tuple di una tabella in base a diversi campi (2chiavi primarie), in modo che il backup risulti ordinato, non mi serve ovviamente la query per visualizzarle ordinate (select * from tabella order by ...).
Esempio di backup: Codice:
def. tabella bla bla bla INSERT INTO `tabella` (`PRIMARY_KEY_1`,`PRIMARY_KEY_2`, ...) VALUES (1,1, ... ), (1,4, ... ), (2,2, ... ), (2,4, ... ), (1,2, ... ), (2,3, ... ), (1,3, ... ), (2,1, ... ) ecc ecc ![]()
__________________
Cerco fotocamera con buono zoom!! CLICCA! ° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) ° Ultima modifica di Andrea16v : 14-03-2007 alle 12:08. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
non ho capito molto...
cmq no non puoi crearti un vista oppure una tabella temporanea con ordinamento che vuoi tu e poi da li farci quello che vuoi?
__________________
Il portale delle infomazioni di Latina e Provincia Giralatina.it e’ nato con il preciso intento di promuovere varie attività che si svolgono nella provincia di Latina http://www.giralatina.it Il Blog dei Pendolari http://www.giralatina.it/blog/mybloggie/index.php |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 3852
|
Mi serve proprio che quando importo dal backup le tuple compaiano nelle tabelle con l'ordinamento di cui sopra, ma andrebbe bene anche il contrario, ossia riuscire a creare il backup da tabelle già ordinate in base alle chiavi primarie.
Sopra lo ho dato per scontato, ma da quello che ho ora nel file di backup, ossia: Codice:
def. tabella bla bla bla INSERT INTO `tabella` (`PRIMARY_KEY_1`,`PRIMARY_KEY_2`, ...) VALUES (1,1, ... ), (1,4, ... ), (2,2, ... ), (2,4, ... ), (1,2, ... ), (2,3, ... ), (1,3, ... ), (2,1, ... ) ecc ecc vorrei ottenere questo: Codice:
def. tabella bla bla bla INSERT INTO `tabella` (`PRIMARY_KEY_1`,`PRIMARY_KEY_2`, ...) VALUES (1,1, ... ), (1,2, ... ), (1,3, ... ), (1,4, ... ), (2,1, ... ), (2,2, ... ), (2,3, ... ), (2,4, ... ) ecc ecc
__________________
Cerco fotocamera con buono zoom!! CLICCA! ° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) ° |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Premesso che una tabella è un insieme di ennuple, e in matematica un insieme non ha ordinamento, e quindi non capisco le motivazioni del tuo problema, puoi crearti una tabella al volo ed esportare quella.
In oracle sarebbe qualcosa tipo: Codice:
create table t as select * from my_table order by 1,2 /* ammesso che siano i primi due i campi per cui vuoi ordinare */ Scusa ma che ti cambia avere le insert in un certo ordine?? Una tabella è un insieme di dati, per aver un ordinamento c'è l'order by apposta!
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 3852
|
Quote:
Ora sono intervenute delle modifiche, per esigenze di lavoro, direttamente sul database in quanto l'interfaccia utente non permetteva di farle (e far aggiornare l'interfaccia utente sarebbe stato troppo costoso) e l'ordine è andato perso. Legato al database ho un programma in visual basic, che si occupa di creare un pdf (di circa 300 pagine): essendo stato pensato per lavorare con tuple gia' "ordinate" non effettua al suo interno una order by prima di leggere i dati dal database, quindi il risultato viene sballato, a meno di ordinare manualmente le poche tuple fuori posto e quindi ripristinare manualmente la situazione che lui si aspetta di trovare nella tabella... Anche far aggiornare il programma in VB mi è stato scartato in quanto troppo costoso, potrei farlo anche io senza problemi, ma, nel momento in cui lo abbiamo comprato non abbiamo avuto i sorgenti del programma ovviamente. ps : ho parlato per semplicità di tabella, ma in realtà sono più di una, tutte con lo stesso problema.
__________________
Cerco fotocamera con buono zoom!! CLICCA! ° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) ° |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Si ma è sbagliato proprio il concetto da cui siete partiti.
E' errato presupporre che una select ti ritorni i dati in un certo ordine senza un order by. L'ordine può cambiare per N motivi (come è successo poi). Gli insiemi non hanno ordine.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 3852
|
Quote:
In ogni caso il programma non era così gravemente sbagliato, perchè era pensato per uno scopo ben preciso e limitato, semplicemente è stato forzato a far qualcosa di molto diverso per esigenze di risparmio, senza richiedere la modifica all'azienda che l'ha prodotto. Comunque eseguendo un backup tabella per tabella, dopo aver eseguito una order by su ogni tabella, dovrebbe funzionare, domani provo anche se è una menata, ma per ora l'unica soluzione...
__________________
Cerco fotocamera con buono zoom!! CLICCA! ° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) ° |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:31.