Question

J'ai une table qui contient des données énormes. Je veux ajouter veille prolongée versionnage automatique à cette table. Mais l'ajout d'une colonne non NULL à cette table pour versioning est très coûteux en raison de données énormes. Y at-il une solution de contournement mise en veille prolongée peut donc travailler avec la colonne nullable? À l'heure actuelle mise en veille prolongée donne NPE parce qu'il tente d'incrémenter une valeur nulle. (En veille prolongée gère ce en interne, en changeant la valeur de la version sur le côté client est hors de question) Tout autre est versioning startegy aussi les bienvenus. Merci à l'avance

Était-ce utile?

La solution

Si votre goût de la base de données le permet, vous pouvez utiliser l'option par défaut. Ceci est contre Oracle ...

SQL> create table t23 as select object_id as id from user_objects;

Table created.

SQL> desc t23
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER

SQL> alter table t23 add hibernate_version_number number default 0 not null;

Table altered.

SQL> desc t23
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER
 HIBERNATE_VERSION_NUMBER                  NOT NULL NUMBER

SQL> select count(*) from t23 where hibernate_version_number = 0;

  COUNT(*)
----------
       504

SQL>

Cependant, vous pouvez toujours vouloir évaluer ses performances par rapport à un volume réaliste de données. Il ne peut pas résoudre votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top