Mise en veille prolongée: Colonne automatique Versioning Nullable
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
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.