Bonjour à tous,
Nouveau sur les bases de données, je viens vers vous car au bout de 6 mois de recherche avec l'ami google, je n'ai pas trouvé de réponse.
Voilà j'expose ma question.
J'utilise HSQLDB via une application JAVA qui me permet de stocker et de trier des informations sur l'avancement de mon algorithme.
Mais pour faire simple et pour l'exemple, je créé une table avec deux colonnes ( Variation et ordre) et je créé au une table d'indexation (une view) où je demande de trier les variations par ordre croissant que je limite aux dix meilleurs variations.
CREATE TABLE Table (Variation DOUBLE, Ordre INT)
CREATE VIEWS View AS SELECT * FROM Table WHERE Ordre IS NULL ORDER BY Variation DESC LIMIT 10
J'aimerai attribuer un ordre de traitement dans la case ordre. C'est à dire en sélectionnant les 10 meilleurs variations via la table d'indexation et en mettant à jour la case ordre : Exemple valeur à 1 pour les 10 premiers, à 2 pour les 10 suivant, ect...
J'ai essayé un code comme celui-ci (qui ne fonctionne pas) :
UPDATE View SET Ordre = 1
Or je n'ai pas l'air d'avoir la possibilité de le faire par la fonction UPDATES sur la table d'indexation
Je vous donne mon petit code pour ceux qu'ils veulent faire des tests
Merci par avance de vos réponse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 public class TestCreateDB { private Connection connect = null; private Statement statement = null; private ResultSet resultSet = null; public static void main(String[] args) { try { Class.forName("org.hsqldb.jdbcDriver"); connect = DriverManager.getConnection("jdbc:hsqldb:C:/myDB/;create=true", "SA", ""); statement = connect.createStatement(); String listColonne = ""; try { // Ajout de table statement.executeQuery("CREATE CACHED TABLE IF NOT EXISTS Table (Variation DOUBLE , Ordre INT)"); // Ajout de table view statement.executeQuery("CREATE VIEW View AS SELECT * FROM Table WHERE Ordre IS NULL ORDER BY Variation DESC limit 10"); // Ajout des 100 valeurs for(int tempValue = 0; tempValue < 100 ; tempValue++) { statement.executeQuery("INSERT INTO Table VALUES (" + String.valueOf(Math.random()) + ",)"); } } catch (Exception e) { } } catch (Exception e) { throw e; } finally { close(); } } private void close() { try { resultSet.close(); } catch (Exception e) { } try { statement.executeQuery("SHUTDOWN"); statement.close(); } catch (Exception e) { } try { connect.close(); } catch (Exception e) { } } }
Partager