je ne comprend pas tout,
sur une table existante sans ID unique, je veux lui en ajouté un
grosso modo je fais ça:
mais la dernière ligne me donne ceci quand je commit (tout le reste passe, j'ai bien des ID, rien de null)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ALTER TABLE test ADD pk INTEGER NOT NULL; CREATE GENERATOR g_test; COMMIT; UPDATE test SET pk = GEN_ID(g_test, 1); ALTER TABLE test ADD CONSTRAINT test_pk PRIMARY KEY (pk);
je ne comprend vraiment pas d'où ça vient
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 Executing... Done. 1240 fetches, 14 marks, 24 reads, 0 writes. 3 inserts, 1 updates, 0 deletes, 147 index, 235 seq. Delta memory: 101932 bytes. RDB$INDEX_SEGMENTS: 1 inserts. RDB$INDICES: 1 inserts. RDB$RELATIONS: 1 updates. RDB$RELATION_CONSTRAINTS: 1 inserts. Total execution time: 0.061s Script execution finished. Commiting transaction... *** IBPP::SQLException *** Context: Transaction::Commit SQL Message : -625 The insert failed because a column definition includes validation constraints. Engine Code : 335544347 Engine Message : validation error for column pk, value "*** null ***"
il existait une contrainte sur un champ LIBELLE qui servait de clé unique mais je l'ai supprimée
il existe 3 triggers mais ceux-ci alimentent simplement une table de log sans rapport
EDIT: j'ai ajouté le code avant le Commit, j'ai supprimé les triggers ça ne change rien, et je peux créer une clé unique sur le champ NOT NULL, mais je ne peux en faire la clé primaire...qui n'existe plus...bizarre non ?
j'ai trouvé une erreur similaire ici
Partager