回答

收藏

Liquibase-使用uuid插入行

技术问答 技术问答 194 人阅读 | 0 人回复 | 2023-09-14

我有两个表声明如下:+ X! i8 E+ ~$ ?0 I+ w6 z) @
: r: z1 S& [$ X
   
6 _% s6 U7 V  p! g& G5 j  n        . |9 |) [1 w4 q+ {9 ^# o- l- Z
            + i% @2 I5 ~6 @
        2 B* J! s1 b, d5 U- }7 A! P5 H
        3 d0 y7 ?. T* N8 M; N
            
6 Z+ Q! D9 `8 Y6 w        . B4 u5 n1 D, r0 d9 I" U( c
   
" K3 I0 Y: e4 d; X& U& N
6 ]8 A/ f3 i  d6 M. y   
! y  X4 Z; k& M' U: Q        
( N+ u& s8 C6 g$ L            
/ t4 Y: s' ^* H- a+ T" x. ^        
5 k; n2 x( Y4 y4 h( W        6 _: f4 G; w/ B$ n" Y6 x9 z" F
            5 r. i3 T: |2 `) b- J: D
        
9 G  O1 H) l$ c& w$ [+ ?0 n  o) v        
8 K3 R! g) C- m$ N0 I            
2 I( x9 o6 I! n  B        * m# e( G1 L, H/ D. o& ?# m9 R
   
% P3 [& F. h* `% u
" a2 j' |9 [2 `$ H1 A# T- H$ R$ i$ v, g    4 v6 |7 Y' o; h

0 c9 L/ p8 M0 Y/ @7 ^2 C0 k我想用一些值填充liquibase changelog文件中的两个表:
9 R+ b% Q5 C: K# ?INSERT INTO country VALUES('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'HUNGARY');
  \$ Y' o/ _$ v+ T( A! C+ t9 _INSERT INTO region VALUES('bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'Baranya');. ]) z9 r7 m5 T8 J( D
在此示例中,由于简单起见,我使用了aaaa和bbbb。我想通过DBMS生成那些UUID。
7 `2 ~; o& a. D最好的方法是什么?我必须在变更日志文件中使用SQL还是可以在XML中使用?我更喜欢DBMS独立解决方案,例如XML或JSON。
% @! K! o9 |( F7 p我的第二个问题是,如何声明带有UUID的列,该列会在插入时创建UUID。就像是:( J* T+ n7 c  A' N/ Y

% S8 G4 u4 f, u& T6 m+ o+ Q    6 t; L: M, ]+ X% W4 I
9 k7 X4 g, f2 R4 u
感谢您的时间!) Q; k2 T. A( s7 \% C
                * ]4 {% B/ m0 D+ [$ N6 T
解决方案:5 p+ A5 Q' ?+ a' t1 A2 B
                6 B8 p" Z* [5 v' X4 d" y

8 D: [, Y+ z# a: f- d/ ~5 k7 M! V; S: ^0 c9 |" c9 S
                您可以通过使用根据当前DBMS定义的属性来执行此操作。
/ P" ]7 W' |# K) {" m2 F& U! m) K1 Z' u, f7 B

  j6 H( k  j2 U. S8 d  a& V$ u$ P# a8 h' Y1 @6 }  ^
7 l% Y. V' s1 [; \, b, n
然后在定义表时使用这些属性:$ T/ H6 |+ I" V  b7 F+ z

+ v) }5 M  d9 k. `- @7 C) B3 E    ) }, x. [# f1 M/ O, ]4 K- a8 Z

  h1 x+ r- ^" g9 s! e1 r, T" k请注意,您需要使用defaultValueComputed, 而不是 value; b' }8 B# ]' E6 \: G, q
如果该列是使用默认值定义的,则将其保留在插入语句中,然后数据库将在插入时生成UUID。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则