s2jdbcã®ããã«ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥æ©èœãdbfluteã§ãå®è£
ããŠããã ããªãã§ããããã
(ã·ãŒã±ã³ã¹ã®ã€ã³ã¯ãªã¡ã³ãå€åã䜿ãåããŸã§ãjavaåŽã§ã€ã³ã¯ãªã¡ã³ãããã)
oracleã§å€§éããŒã¿ç»é²ãããŠããã®ã§ããã
ãã®éã·ãŒã±ã³ã¹çºè¡ãããã«ããã¯ã«ãªã£ãŠããŸãã
(ã·ãŒã±ã³ã¹ã䜿ãã«ã©ã ã«æåã§å€ãèšå®ãããšããã©ãŒãã³ã¹ã¯æ¹åããŸãã)
ã·ãŒã±ã³ã¹ã䜿ããªãã§ã該åœããŒãã«ã®pkã®maxå€ãéæã€ã³ã¯ãªã¡ã³ãããŠæåèšå®ããæ¹æ³ããããŸããã
ã§ããã°ã·ãŒã±ã³ã¹ã䜿ããããšæã£ãŠããŸãã
ãæ€èšããã ããªãã§ããããã
#
# å¥ä»¶ã§ãã
# databaseInfoMap.dfpropã®columnExceptListãããŸãåäœããŸããã§ããã
# â»ããããadditionalSchemaMap察å¿ã®éããšã
# DfAbstractMetaDataHandler.getRealSimpleColumnExceptList()ã®
# schemaNameã®å€å®ãééã£ãŠããããã§ããã
# dbflute-basic-exampleã§ã¯ãschemaNameã¯nullã§ã¯ãªã空æåã§ããã
# â»oracleãªã©ã¯ç¢ºèªããŠãŸããããã¡ã€ã³ã¹ããŒãåããã§ãã
#
# ã¡ãªã¿ã«ãã®æ©èœãããŒãã«åãæå®ã§ããããã«æ¡åŒµããããšã¯é£ããã§ããããã
# ããããŒãã«ã®ã«ã©ã ãåé€ãããšãã«ãå
ã«dbfluteã§èªåçæããŠ
# 圱é¿èª¿æ»ãäºåã«dbfluteäžåé€ã§ããããªãšã
# (ããããã®äœ¿ãæ¹ãšéãã®ã§ãå®è£
äžãããªã·ãŒäžå¯èœã§ããã°ã§ã)
#
> s2jdbcã®ããã«ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥æ©èœãdbfluteã§ãå®è£
ããŠããã ããªãã§ããããã
> (ã·ãŒã±ã³ã¹ã®ã€ã³ã¯ãªã¡ã³ãå€åã䜿ãåããŸã§ãjavaåŽã§ã€ã³ã¯ãªã¡ã³ãããã)
ããããã¡ããå
·äœçãªåŠçæããŠé ããŸãïŒ
(ã©ã£ãã«ããã¥ã¡ã³ãããããªïŒ)
> 倧éããŒã¿ç»é²
åèãŸã§ã«ãäœä»¶ããããæ³å®ããŠããŸãã§ããããïŒ
ããšã"batchInsert()ã¯äœ¿ã£ãŠã" ã§OKã§ããïŒ
> # databaseInfoMap.dfpropã®columnExceptListãããŸãåäœããŸããã§ããã
> # â»ããããadditionalSchemaMap察å¿ã®éããšã
> # DfAbstractMetaDataHandler.getRealSimpleColumnExceptList()ã®
> # schemaNameã®å€å®ãééã£ãŠããããã§ããã
ãããããããšãããããŸãã
ã©ã®Exampleã§ããã¹ãããªãã®ãæå ã§ããã
çŽããŠãããŸãã
> # ã¡ãªã¿ã«ãã®æ©èœãããŒãã«åãæå®ã§ããããã«
> æ¡åŒµããããšã¯é£ããã§ããããã
ãã£ã¡ãããŸãããããããã£ãšæã«åãæ¥ãã§å
¥ããŠã
ãã以éãã£ãšãã€ããŒæ©èœãšããŠãã®ãŸãŸã ã£ãã®ã§ãã....
2010/1/15 awaawa <p1us3i...@gmail.com>:
> --
> ãã®ã¡ãŒã«ã¯ Google ã°ã«ãŒãã®ã°ã«ãŒããDBFluteãŠãŒã¶ã®éããã®ç»é²è
ã«éãããŠããŸãã
> ãã®ã°ã«ãŒãã«æçš¿ããã«ã¯ãdbf...@googlegroups.com ã«ã¡ãŒã«ãéä¿¡ããŠãã ããã
> ãã®ã°ã«ãŒãããéäŒããã«ã¯ãdbflute+u...@googlegroups.com ã«ã¡ãŒã«ãéä¿¡ããŠãã ããã
> 詳现ã«ã€ããŠã¯ãhttp://groups.google.com/group/dbflute?hl=ja ãããã®ã°ã«ãŒãã«ã¢ã¯ã»ã¹ããŠãã ããã
>
>
>
>
> # databaseInfoMap.dfpropã®columnExceptListãããŸãåäœããŸããã§ããã
SNAPSHOTã§å¯Ÿå¿ããŠã¿ãŸãã(EMechaã§ããŠã³ããŒãå¯èœ)ã
ãã°ã®æ¹ãåæã«çŽããŠããŸãã
(awaawaããã®èšãéãæããã«ifæãè¶³ããŠãªãã£ãã§ãã)
ãŸãã¯ãcolumnExceptListãèšå®ããŠãããšäŸå€ã«ãªããŸãã
(ç§»è¡ããŠäžããã£ãŠæãã®ã¡ãã»ãŒãžãåºãŸã)
ã§ãæ°ãã«columnExceptMapãèšå®ãããšå©çšå¯èœã§ãã
ãã³ãã¬ãŒãã®ã³ã¡ã³ããåèã«ããŠäžããã
; columnExceptMap = map:{
; VENDOR_CHECK = list:{COLUMN_EXCEPT_TEST}
}
dbflute-mysql-exampleã«ãŠãã¹ãããŠããŸãã
(ããããDBäŸåãããªãã¡ãã£ãšããç¹å¥ãªç¶æ³ã®ãã¹ãã¯
dbflute-mysql-exampleã«ãŠ)
2010/1/15 kubo <dbf...@gmail.com>:
ã·ãŒã±ã³ã¹ã®è©±ã§ãããè²ã
æ€çŽ¢ããŠã¿ãŠå°ãçè§£ããŸããã
JPAã®ä»æ§(æ©æ§)ãšããŠãããããã®ãããã¿ããã§ããã
ã§ããããã£ãŠããããŸã§ãã£ã¡ãã£ãããã·ãŒã±ã³ã¹ã
䜿ãæå³ãããã®ãã©ããããŸã ããããã£ãŠãªãã§ãã
(ãããªãã°ãã¢ããªé åã§å
šéšæ¡çªãã¡ããã°ãš)
ããšããã¯ãå¥ã¢ããªãšã®åæã£ãŠã©ããªã£ãŠãã®ãïŒïŒ
ã¿ã€ãã³ã°ã«ãã£ãŠãåãçªå·ã§insertãã¡ããå¯èœæ§ã£ãŠãªãã®ãïŒïŒ
(ãã£ãã«ãªããšããå²ãåããã¢ãªããã§ãã...ããã©ããªã£ãŠãã®ã)
ãã®èŸºã®çåãæç¢ºã«ããŠãããããªããšããŸã ãªããšãã§ããã
ã¡ãªã¿ã«å¿µã®ããã®ç¢ºèªãDBåŽã®ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥ã
NOCACHEã«ããŠãã£ãŠããšã¯ãªãã§ããïŒ
(ãŸãããããããã£ãã·ã¥ããŠã广ãèãããã§ãã)
http://www.shift-the-oracle.com/sequence/
2010/1/15 kubo <dbf...@gmail.com>:
awaawaããã
A. DBäžã®ã·ãŒã±ã³ã¹ã®æ¡çªåŠçèªäœãéãã®ã
B. ã¢ããªã§ã® "åç¬ã®ã·ãŒã±ã³ã¹ã®select" ãéãã®ã
C. äž¡æ¹ãããªã
ã£ãŠã®ãæç¢ºã«ãããã®ã§ã
äžæçã«å€ã ãSQLã§insertæãæžããŠã
insertæã®äžã«SEQ.nextvalãåã蟌ãã§
åãåŠçã詊ããŠé ããŸãããïŒ
ãããB or Cã§ããã°ã
ãå°ãªããšãå€ã ãSQLã«ããããšã§æ¹åãã
ãããŠã
ãDBFluteã®ãªãã·ã§ã³ã§insertæã«nextvalãåã蟌ã
ãã£ãŠããæ¹åãããéããããã
ãšããã®ãèŠéã«å
¥ããŠããŸãã
â»åŠçåŸã®Entityã«æ¡çªãããIDãå
¥ããªãã®ã蚱容ã§ãããªã
#
# batchInsert()ã®äœãããã®ãªãã·ã§ã³ã§ã
# åŠçåŸã®Entityã«æ¡çªãããIDãå
¥ããªããã©
# insertæã«nextvalãåã蟌ããã£ãŠã®ãå®è¡ã§ããŠããããã
#
# ç¹ã«å€§éããŒã¿ç»é²ã®ãšãã£ãŠãåŠçåŸã®Entityã®IDãã¢ããªã§
# å©çšããªãããšãå€ãããªããš(ããããããã©ãŒãã³ã¹åªå
ã§)
#
2010/1/15 kubo <dbf...@gmail.com>:
> ã§ããããã£ãŠããããŸã§ãã£ã¡ãã£ãããã·ãŒã±ã³ã¹ã
> 䜿ãæå³ãããã®ãã©ããããŸã ããããã£ãŠãªãã§ãã
> (ãããªãã°ãã¢ããªé åã§å
šéšæ¡çªãã¡ããã°ãš)
> ããšããã¯ãå¥ã¢ããªãšã®åæã£ãŠã©ããªã£ãŠãã®ãïŒïŒ
> ã¿ã€ãã³ã°ã«ãã£ãŠãåãçªå·ã§insertãã¡ããå¯èœæ§ã£ãŠãªãã®ãïŒïŒ
http://d.hatena.ne.jp/agt/20080208
ãã®èŸºãã®è©±ã§ããã
ã·ãŒã±ã³ã¹ã®ååŸèªäœãéãã®ã§ã¯ãªãã§ããããã
JPAã®ä»æ§ã§ããããã©ã«ã50ã§allocationSizeãèšå®ãããŸãã®ã§ã次ã®ããã«ã·ãŒã±ã³ã¹ãäœæããã°ã
create sequence seq_hoge increment 50;
ã¢ããªããšå¥ã
ã«50ãã€å²ãæ¯ãããæãã«ãªãã®ã§ãåãçªå·ã«ãªãå¿é
ã¯ãç¡ãã®ã§ã¯ãªãã§ããããã
DBã®ã·ãŒã±ã³ã¹ååŸã¯åæã®ã¯ãã§ããã
ã¢ããªåŽã§ã·ãŒã±ã³ã¹ãå²ãæ¯ãéã®åæã¯ãã£ããããªããã°ãããªããšæããŸããã
On 1æ15æ¥, åå11:30, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> ã·ãŒã±ã³ã¹ã®è©±ã§ãããè²ã
æ€çŽ¢ããŠã¿ãŠå°ãçè§£ããŸããã
> JPAã®ä»æ§(æ©æ§)ãšããŠãããããã®ãããã¿ããã§ããã
>
> ã§ããããã£ãŠããããŸã§ãã£ã¡ãã£ãããã·ãŒã±ã³ã¹ã
> 䜿ãæå³ãããã®ãã©ããããŸã ããããã£ãŠãªãã§ãã
> (ãããªãã°ãã¢ããªé åã§å
šéšæ¡çªãã¡ããã°ãš)
> ããšããã¯ãå¥ã¢ããªãšã®åæã£ãŠã©ããªã£ãŠãã®ãïŒïŒ
> ã¿ã€ãã³ã°ã«ãã£ãŠãåãçªå·ã§insertãã¡ããå¯èœæ§ã£ãŠãªãã®ãïŒïŒ
> (ãã£ãã«ãªããšããå²ãåããã¢ãªããã§ãã...ããã©ããªã£ãŠãã®ã)
> ãã®èŸºã®çåãæç¢ºã«ããŠãããããªããšããŸã ãªããšãã§ããã
>
> ã¡ãªã¿ã«å¿µã®ããã®ç¢ºèªãDBåŽã®ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥ã
> NOCACHEã«ããŠãã£ãŠããšã¯ãªãã§ããïŒ
> (ãŸãããããããã£ãã·ã¥ããŠã广ãèãããã§ãã)http://www.shift-the-oracle.com/sequence/
>
> 2010/1/15 kubo <dbfl...@gmail.com>:
>
> > jfluteã§ãã
>
> >> # databaseInfoMap.dfpropã®columnExceptListãããŸãåäœããŸããã§ããã
> > SNAPSHOTã§å¯Ÿå¿ããŠã¿ãŸãã(EMechaã§ããŠã³ããŒãå¯èœ)ã
> > ãã°ã®æ¹ãåæã«çŽããŠããŸãã
> > (awaawaããã®èšãéãæããã«ifæãè¶³ããŠãªãã£ãã§ãã)
>
> > ãŸãã¯ãcolumnExceptListãèšå®ããŠãããšäŸå€ã«ãªããŸãã
> > (ç§»è¡ããŠäžããã£ãŠæãã®ã¡ãã»ãŒãžãåºãŸã)
>
> > ã§ãæ°ãã«columnExceptMapãèšå®ãããšå©çšå¯èœã§ãã
> > ãã³ãã¬ãŒãã®ã³ã¡ã³ããåèã«ããŠäžããã
>
> > ; columnExceptMap = map:{
> > ; VENDOR_CHECK = list:{COLUMN_EXCEPT_TEST}
> > }
>
> > dbflute-mysql-exampleã«ãŠãã¹ãããŠããŸãã
> > (ããããDBäŸåãããªãã¡ãã£ãšããç¹å¥ãªç¶æ³ã®ãã¹ãã¯
> > dbflute-mysql-exampleã«ãŠ)
>
> > 2010/1/15 kubo <dbfl...@gmail.com>:
> >> jfluteã§ãã
>
> >>> s2jdbcã®ããã«ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥æ©èœãdbfluteã§ãå®è£
ããŠããã ããªãã§ããããã
> >>> (ã·ãŒã±ã³ã¹ã®ã€ã³ã¯ãªã¡ã³ãå€åã䜿ãåããŸã§ãjavaåŽã§ã€ã³ã¯ãªã¡ã³ãããã)
> >> ããããã¡ããå
·äœçãªåŠçæããŠé ããŸãïŒ
> >> (ã©ã£ãã«ããã¥ã¡ã³ãããããªïŒ)
>
> >>> 倧éããŒã¿ç»é²
> >> åèãŸã§ã«ãäœä»¶ããããæ³å®ããŠããŸãã§ããããïŒ
> >> ããšã"batchInsert()ã¯äœ¿ã£ãŠã" ã§OKã§ããïŒ
>
> >>> # databaseInfoMap.dfpropã®columnExceptListãããŸãåäœããŸããã§ããã
> >>> # â»ããããadditionalSchemaMap察å¿ã®éããšã
> >>> # DfAbstractMetaDataHandler.getRealSimpleColumnExceptList()ã®
> >>> # schemaNameã®å€å®ãééã£ãŠããããã§ããã
> >> ãããããããšãããããŸãã
> >> ã©ã®Exampleã§ããã¹ãããªãã®ãæå ã§ããã
> >> çŽããŠãããŸãã
>
> >>> # ã¡ãªã¿ã«ãã®æ©èœãããŒãã«åãæå®ã§ããããã«
> >>> æ¡åŒµããããšã¯é£ããã§ããããã
> >> ãã£ã¡ãããŸãããããããã£ãšæã«åãæ¥ãã§å
¥ããŠã
> >> ãã以éãã£ãšãã€ããŒæ©èœãšããŠãã®ãŸãŸã ã£ãã®ã§ãã....
>
> >> 2010/1/15 awaawa <p1us3inus2...@gmail.com>:
hajimeniãããæ
å ±ããããšãããããŸãã
ããã§ããããã¡ãã§ãè²ã
åæããŠãŠã
èŠã¯ãã1ãã50ãŸã§ãäºçŽãããã¿ãããªæãã§ããã
次ã«å¥ã¢ããªã¯ã51ãã100ãŸã§ãäºçŽãã
ç»é²ããé çªãé転ããå¯èœæ§ãããŸããã
incrementã50ã«ããŠãæç¹ã§ããããã®ã¯å²ãåãã§ãããã
å¥ã¢ããªã§åãæ©æ§ããã£ãŠãªããã°é£ã³çªããŸãããã
ã§ãåæã®çµæã
ã"ããã©ã«ãã¯ä»ã®ãŸãŸ(ãã©ãã«ãçºçãããããšæããããã)"
ã§ã
ã"incrementã®æ°å€ãdfpropã«æå®ããããšèªäœããã£ãã·ã¥å©çšåå³"
ãšãããããªä»æ§ã«ããã°ããºã¬ã§ãã©ãã«ããšããªãããšã
ãšããæãã§ãªã¢ã«ã¿ã€ã ã«æ€èšããŠããŸãã
(ç¡è«ãããã¯ããã§A, Bã®ããã©ãŒãã³ã¹ã®æ€èšŒæ
å ±ã¯æ¬²ãããã©)
ãŸãã"batchInsert()ã§nextvalãåã蟌ã" ã£ãŠæ©èœãã
ããã¯ããã§ãã£ãŠãããããªã£ãŠ(ãããã©ãããŸã æ€èš)ã
çµç¹æ¬¡ç¬¬ã§ãããDBåŽã«éçºåŽã®éœåã§ "increment by 50"
ã£ãŠããŠãããããšãã§ããªãå Žåãããããããªãããšã
ãã®å ŽåãEntityã®IDæ ŒçŽãç ç²ã«ã¡ãã£ãšã§ãéãã§ãããªã
圹ã«ç«ã€ããšã¯ããããããªãããªãšã
2010/1/15 hajimeni <hajim...@gmail.com>:
columnExceptMap確èªããŸãããã察å¿ããããšãããããŸãã(æ©ã!!)
ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥æ©èœã®ä»¶ã§ããã以äžåçã§ãã
> åèãŸã§ã«ãäœä»¶ããããæ³å®ããŠããŸãã§ããããïŒ
ãïœ10äžä»¶ãããã§ãããªããããŒãã«ã¯10ã«ã©ã ç¡ããããã§ãã
> ããšã"batchInsert()ã¯äœ¿ã£ãŠã" ã§OKã§ããïŒ
ã䜿ã£ãŠãŸãã
> NOCACHEã«ããŠãã£ãŠããšã¯ãªãã§ããïŒ
ãããã©ã«ã(20)ã§ãã
> A. DBäžã®ã·ãŒã±ã³ã¹ã®æ¡çªåŠçèªäœãéãã®ã
> B. ã¢ããªã§ã® "åç¬ã®ã·ãŒã±ã³ã¹ã®select" ãéãã®ã
> C. äž¡æ¹ãããªã
Bã§ããã¢ããªçµç±ã§ã®ã·ãŒã±ã³ã¹æ¡çªåŠçãæ¥µç«¯ã«éãã§ãã
(å€ã ãSQLã§ãã£ãŠãåæ§ã§ããã)
Object Browserã§ã¯åãã¯ãšãª(ã·ãŒã±ã³ã¹æ¡çªåŠç)ã§ã倧ããŠé
ããããŸããã§ããã
äœã§ã§ãããããã
hajimeniããããã©ããŒããããšãããããŸãã
jfluteãããåæããŠããã ãããšããã®æ³å®ã§ããŸãã
ã§ããã°ããã®æ©èœã䜿ããã©ããã¯dfpropã§booleanæå®ã«ããŠã
incrementå€ã¯ALL_SEQUENCESã§ãšã£ãŠããã ãããšãããããã§ãã
â»çžäºã®å€ãéããšæ©èœã誀äœåããã®ã§ã
> "batchInsert()ã§nextvalãåã蟌ã" ã£ãŠæ©èœ
ããããã£ããããããã§ãã
ãã£ããããšããã倧éããŒã¿ç»é²ã®å Žåãç»é²åŸIDå©çšããªãããšãå€ãã®ã§ã
On 1æ15æ¥, ååŸ7:11, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> hajimeniãããæ
å ±ããããšãããããŸãã
> ããã§ããããã¡ãã§ãè²ã
åæããŠãŠã
> èŠã¯ãã1ãã50ãŸã§ãäºçŽãããã¿ãããªæãã§ããã
> 次ã«å¥ã¢ããªã¯ã51ãã100ãŸã§ãäºçŽãã
> ç»é²ããé çªãé転ããå¯èœæ§ãããŸããã
> incrementã50ã«ããŠãæç¹ã§ããããã®ã¯å²ãåãã§ãããã
> å¥ã¢ããªã§åãæ©æ§ããã£ãŠãªããã°é£ã³çªããŸãããã
>
> ã§ãåæã®çµæã
> ã"ããã©ã«ãã¯ä»ã®ãŸãŸ(ãã©ãã«ãçºçãããããšæããããã)"
> ã§ã
> ã"incrementã®æ°å€ãdfpropã«æå®ããããšèªäœããã£ãã·ã¥å©çšåå³"
> ãšãããããªä»æ§ã«ããã°ããºã¬ã§ãã©ãã«ããšããªãããšã
>
> ãšããæãã§ãªã¢ã«ã¿ã€ã ã«æ€èšããŠããŸãã
> (ç¡è«ãããã¯ããã§A, Bã®ããã©ãŒãã³ã¹ã®æ€èšŒæ
å ±ã¯æ¬²ãããã©)
>
> ãŸãã"batchInsert()ã§nextvalãåã蟌ã" ã£ãŠæ©èœãã
> ããã¯ããã§ãã£ãŠãããããªã£ãŠ(ãããã©ãããŸã æ€èš)ã
> çµç¹æ¬¡ç¬¬ã§ãããDBåŽã«éçºåŽã®éœåã§ "increment by 50"
> ã£ãŠããŠãããããšãã§ããªãå Žåãããããããªãããšã
> ãã®å ŽåãEntityã®IDæ ŒçŽãç ç²ã«ã¡ãã£ãšã§ãéãã§ãããªã
> 圹ã«ç«ã€ããšã¯ããããããªãããªãšã
>
> 2010/1/15 hajimeni <hajimeni...@gmail.com>:
> columnExceptMap確èªããŸãããã察å¿ããããšãããããŸãã(æ©ã!!)
ã確èªããããšãããããŸãã
> Bã§ããã¢ããªçµç±ã§ã®ã·ãŒã±ã³ã¹æ¡çªåŠçãæ¥µç«¯ã«éãã§ãã
> (å€ã ãSQLã§ãã£ãŠãåæ§ã§ããã)
> Object Browserã§ã¯åãã¯ãšãª(ã·ãŒã±ã³ã¹æ¡çªåŠç)ã§ã倧ããŠé
ããããŸããã§ããã
> äœã§ã§ãããããã
ãµããããã£ãŠã
insertæã«SEQ.nextvalãåã蟌ãã å€ã ãSQLã§ã
é
ãã£ããã£ãŠæãã§ããïŒ
> incrementå€ã¯ALL_SEQUENCESã§ãšã£ãŠããã ãããšãããããã§ãã
> â»çžäºã®å€ãéããšæ©èœã誀äœåããã®ã§ã
ããã¯ãã²ãããæ€èšããã®ã ãã
DB2ãPostgreSQLãH2ã§åãããšãæãããŠã§ããããªããšã
ãªã®ã§ããããŠãæ°å€ãæå®ããããšãå©çšåå³ããšãã圢ã«ããŠã
ãºã¬ã®ãã¹ãçºçãã«ããããã«èããŠããŸãã
(èŠã¯ãããã©ã«ãã§50ãšãã¯ãããªã)
ãªã¢ã«ã¿ã€ã ã§å®è£
ããŠãŸãã®ã§ã
ã§ãããæ€èšŒãé¡ãããŸããã
ããªãå³å¯ã«ãã¹ãããªããšãããªããããªã®ã§ã
2010/1/16 awaawa <p1us3i...@gmail.com>:
>> incrementå€ã¯ALL_SEQUENCESã§ãšã£ãŠããã ãããšãããããã§ãã
>> â»çžäºã®å€ãéããšæ©èœã誀äœåããã®ã§ã
ãããã§ãããããªã
Oracleã ãšæ°å€ã®æå®ãçç¥ã§ããã
ãšããªãã仿§ã®çµ±äžæ§ãšããŠåé¡ç¡ãããããªã
#
# ããã¯ãããšããŠãDB2ãPostgreSQLã§incrementã®å€ã
# ååŸããæ¹æ³ãããç¥ã£ãŠããæããŠãã
#
2010/1/16 kubo <dbf...@gmail.com>:
> ãµããããã£ãŠã
> insertæã«SEQ.nextvalãåã蟌ãã å€ã ãSQLã§ã
> é
ãã£ããã£ãŠæãã§ããïŒ
ããã§ãã
> # ããã¯ãããšããŠãDB2ãPostgreSQLã§incrementã®å€ã
> # ååŸããæ¹æ³ãããç¥ã£ãŠããæããŠãã
調ã¹ãŠã¿ãŸãããå®ç°å¢ãç¡ãããå®è¡ã§ããŠããŸãããã
DB2 select * from SYSCAT.SEQUENCES
PostgreSQL select * from information_schema.sequences
> ãªã¢ã«ã¿ã€ã ã§å®è£
ããŠãŸãã®ã§ã
> ã§ãããæ€èšŒãé¡ãããŸããã
> ããªãå³å¯ã«ãã¹ãããªããšãããªããããªã®ã§ã
äºè§£ã§ãã
On 1æ16æ¥, åå2:21, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> >> incrementå€ã¯ALL_SEQUENCESã§ãšã£ãŠããã ãããšãããããã§ãã
> >> â»çžäºã®å€ãéããšæ©èœã誀äœåããã®ã§ã
>
> ãããã§ãããããªã
> Oracleã ãšæ°å€ã®æå®ãçç¥ã§ããã
> ãšããªãã仿§ã®çµ±äžæ§ãšããŠåé¡ç¡ãããããªã
>
> #
> # ããã¯ãããšããŠãDB2ãPostgreSQLã§incrementã®å€ã
> # ååŸããæ¹æ³ãããç¥ã£ãŠããæããŠãã
> #
>
> 2010/1/16 kubo <dbfl...@gmail.com>:
>
> > jfluteã§ãã
>
> >> columnExceptMap確èªããŸãããã察å¿ããããšãããããŸãã(æ©ã!!)
> > ã確èªããããšãããããŸãã
>
> >> Bã§ããã¢ããªçµç±ã§ã®ã·ãŒã±ã³ã¹æ¡çªåŠçãæ¥µç«¯ã«éãã§ãã
> >> (å€ã ãSQLã§ãã£ãŠãåæ§ã§ããã)
> >> Object Browserã§ã¯åãã¯ãšãª(ã·ãŒã±ã³ã¹æ¡çªåŠç)ã§ã倧ããŠé
ããããŸããã§ããã
> >> äœã§ã§ãããããã
> > ãµããããã£ãŠã
> > insertæã«SEQ.nextvalãåã蟌ãã å€ã ãSQLã§ã
> > é
ãã£ããã£ãŠæãã§ããïŒ
>
> >> incrementå€ã¯ALL_SEQUENCESã§ãšã£ãŠããã ãããšãããããã§ãã
> >> â»çžäºã®å€ãéããšæ©èœã誀äœåããã®ã§ã
> > ããã¯ãã²ãããæ€èšããã®ã ãã
> > DB2ãPostgreSQLãH2ã§åãããšãæãããŠã§ããããªããšã
> > ãªã®ã§ããããŠãæ°å€ãæå®ããããšãå©çšåå³ããšãã圢ã«ããŠã
> > ãºã¬ã®ãã¹ãçºçãã«ããããã«èããŠããŸãã
> > (èŠã¯ãããã©ã«ãã§50ãšãã¯ãããªã)
>
> > ãªã¢ã«ã¿ã€ã ã§å®è£
ããŠãŸãã®ã§ã
> > ã§ãããæ€èšŒãé¡ãããŸããã
> > ããªãå³å¯ã«ãã¹ãããªããšãããªããããªã®ã§ã
>
> > 2010/1/16 awaawa <p1us3inus2...@gmail.com>:
> ...
>
> ãã£ãšèªã â«
>> insertæã«SEQ.nextvalãåã蟌ãã å€ã ãSQLã§ã
>> é
ãã£ããã£ãŠæãã§ããïŒ
> ããã§ãã
ãããŸãããã§ããã
ãããã"A" ãšããããšã§ããã
ããããbatchInsert()ã§insertæåãèŸŒã¿æ©èœè¿œå ããŠã
ãããŸã广ã¯ãªãããã§ããããã
ããããšãããããŸãã
>> # ããã¯ãããšããŠãDB2ãPostgreSQLã§incrementã®å€ã
>> # ååŸããæ¹æ³ãããç¥ã£ãŠããæããŠãã
> 調ã¹ãŠã¿ãŸãããå®ç°å¢ãç¡ãããå®è¡ã§ããŠããŸãããã
> DB2 select * from SYSCAT.SEQUENCES
> PostgreSQL select * from information_schema.sequences
ãããããããšãããããŸãã
ãµãã
ãæ¬åœã«æš©éã倧äžå€«ãªã®ãã
ããŒãžã§ã³éãã§å€§äžå€«ãªã®ãã
ã¡ãã£ãšè²ã
äžå®ãªæãããããŸãã...
ãšããããã¯ãOracleã ãçç¥å¯èœã£ãŠæãã«ããããã§ãã
(PostgreSQLã¯ãããããªã...ã§ããã¹ãç°å¢ãã€ãã)
DBFlute-0.9.6.4-SNAPSHOT
(ã©ã³ã¿ã€ã ã¯ã0.9.6.4-03-SNAPSHOT)
ãå©çšããŠã¿ãŠäžããã
ãããŠãsequenceDefinitionMap.dfpropã«ãŠ
ãMEMBER = SEQ_MEMBER:cache()
ãšãã³ãã³ã«ç¶ã㊠"cache" ãã㊠"()"ã
"()" ã¯éåžžã¯äžã«æ°å€(cacheSize)ãæå®ããŸããã
Oracleãªãçç¥å¯èœã«ãªã£ãŠããŸãã
â»cacheSize = incrementSize
ã§ãSelectableDataSourceãå©çšããŠããå Žåã¯ã
(ããããšãŠãæ©ã¿ã®çš®ã ã£ã)
DBFluteConfigã§SequenceCacheã®ããŒå€ã®çæã§
ã«ã¹ã¿ãã€ãºã§ããããã«ããŸããã
ããã©ã«ã㯠"ã·ãŒã±ã³ã¹åäœ" ã§ããã
SelectableDataSourceã䜿ãå Žåã¯ãã«ã¬ã³ãDataSourceã®
ååãããŒã«å«ããããã«ããŸãã
ãã¡ãã§ãåŒãç¶ããã¹ãããŠãããŸãã
dbflute-oracle-exampleã§è©ŠããŠãŸãã®ã§åèã«ã
é«è² è·ã®ãã¹ããæžããŠããŸãã
ããšãããã®è©±ã
http://d.hatena.ne.jp/jflute/20100111/1263191486
ãŸããã "ããŒã¿ã®IDã®å¢åéãã·ãŒã±ã³ã¹ãšéã" ã«
ãªããã¡ãªã®ã§ããã¹ãããŒã¿ã®IDãšã¢ããªã§ã®æåã®IDã®
éã«ã¯å°ãéããããŸã(ãŸããåºæ¬å²ãåãã§ããããšæããŸãã)ã
#
# ãããã«ã¶ã£ç¶ãã§ç²ããã...
#
2010/1/16 awaawa <p1us3i...@gmail.com>:
ææ°ã®SNAPSHOTã§äžã€å€æŽã§ãã
(ã©ã³ã¿ã€ã ã¯ãã®ãŸãŸ)
> MEMBER = SEQ_MEMBER:cache()
ãæ¹ãïŒ
MEMBER = SEQ_MEMBER:dfcache()
ãšããããã«å€æŽããŸããã
DBåŽã®ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥ãšçŽããããã®ã§ã
å
šäœãšããŠãDBFluteã®ã·ãŒã±ã³ã¹ãã£ãã·ã¥ãšãã
æå³åããæãããããã«ããŸããã
ã(ã·ãŒã±ã³ã¹ã®)ã§ããŒããµããã£ãã
ãã£ãŠåŒãã§äžããã
ãããŠãææ°ã ãšã
DB2ãH2ã§cacheSizeã®æå®ãçç¥å¯èœã§ãã
PostgreSQLã«é¢ããŠã¯ãã¡ã¿æ
å ±ãæ€çŽ¢ãããã ãã©ã
seqencesããŒãã«ã«ãincrementæ
å ±ãå
¥ã£ãŠãªã(!?)ã®ã§ã
æç€ºçã«æ°å€ãæå®ããå¿
èŠããããŸãã
ex) dfcache(50)
ããšãSchemaHTMLã®PKå¶çŽã®è£è¶³(ããŒã«ããã)ã§ã
ã·ãŒã±ã³ã¹ã®æ
å ±ãåºããã ãåºããŠã¿ãŸããã
2010/1/16 kubo <dbf...@gmail.com>:
é
ããªããŸãããããã¡ãã§ãããã©ãŒãã³ã¹ã«éç¹ã眮ããç°¡åãªç¢ºèªãããŸããã
ãšããããçŸæç¹ã§ã®å ±åã§ãã
以äžã§ã1äžä»¶åã®ã·ãŒã±ã³ã¹çªå·ãæ¡çªããŠã¿ãŸããã(ãšããããinsertãªãã§)
â»PCã¹ããã¯ããããã¯ãŒã¯ç圱é¿ã¯ãããŸãããçžå¯Ÿçã«èŠãæãã§ã
1. selectNextVal() â»dfcache(100)
2. selectNextVal() â»dfcacheãªã
3. å€ã ãSQL select XXX.nextVal from dual
4. å€ã ãSQL select XXX.nextVal from (select * from dual union select *
from dual union ...) â»åã蟌ã¿å€æ°ã³ã¡ã³ãã§1äžåunionããã
å¹³å 1åç® 2åç® 3åç® 4åç® 5åç®
1. 20.034 19.906 19.657 19.890 20.640 20.078
2. 37.826 38.187 37.781 38.460 38.453 36.250
3. 42.559 43.187 44.000 43.156 40.937 41.516
4. 8.741 8.610 7.969 10.641 8.313 8.172
dfcache(100)ãããšååãããã«ãªããŸããã
(å®éãjunitã®å®è¡ã1â2â3ã®é ã ã£ãã®ã§ãŠã©ãŒã ã¢ããåãèãããš1ã¯ããå°ãæ©ãã¯ãã§ãã)
4ã¯å®æœäžã«æ°ã¥ããããšã§ããã£ãŠã¿ããæã£ã以äžã«æ©ãã£ãã§ãã(ããªãããŒã§ãã)
4ã¯juntã§åç¬ã§å®è¡ããã®ã§ã1ãšæ¡ä»¶ã¯ã»ãŒåãã¯ãã§ãã
ãªã®ã§ã4ããŠã©ãŒã ã¢ããåãèãããšããå°ãæ©ãã¯ãã§ãã
ã¡ãªã¿ã«ãã£ãŠããéäžã«æã£ãããšãããã®ã§ã確èªãããŠãã ããã
â»ãœãŒã¹ç¢ºèªãå®éå®è¡ããã°ãããããšã§ç³ãèš³ãããŸãããããã
ã»ãã¯ãªã¡ã³ãã®å Žåã倧äžå€«ã§ããããã(ãããŸã䜿ããªããšæããŸããã)
ã»ã€ã³ã¯ãªã¡ã³ãã»ãã¯ãªã¡ã³ãã1ã-1ã®å Žåã¯åæããªãããšã¯å¯èœã§ããããã(ãã§ã«ãã£ãŠãã?)
åŒãç¶ããinsertå«ã確èªããŸãã
#
# > ãããã«ã¶ã£ç¶ãã§ç²ããã...
# ãç²ãæ§ã§ãããããããšãããããŸãããã€ããã³ããããŸããã
#
# > ã§ãSelectableDataSourceãå©çšããŠããå Žåã¯ã
# > (ããããšãŠãæ©ã¿ã®çš®ã ã£ã)
# ãã®ã±ãŒã¹ã¯ãŸã£ããé ã«ãªãã£ãã§ãã確ãã«å€§å€ããããã§ãã
#
On 1æ16æ¥, ååŸ5:00, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> ææ°ã®SNAPSHOTã§äžã€å€æŽã§ãã
> (ã©ã³ã¿ã€ã ã¯ãã®ãŸãŸ)
>
> > MEMBER = SEQ_MEMBER:cache()
>
> ãæ¹ãïŒ
>
> MEMBER = SEQ_MEMBER:dfcache()
>
> ãšããããã«å€æŽããŸããã
> DBåŽã®ã·ãŒã±ã³ã¹ã®ãã£ãã·ã¥ãšçŽããããã®ã§ã
> å
šäœãšããŠãDBFluteã®ã·ãŒã±ã³ã¹ãã£ãã·ã¥ãšãã
> æå³åããæãããããã«ããŸããã
> ã(ã·ãŒã±ã³ã¹ã®)ã§ããŒããµããã£ãã
ãã£ãŠåŒãã§äžããã
>
> ãããŠãææ°ã ãšã
> DB2ãH2ã§cacheSizeã®æå®ãçç¥å¯èœã§ãã
> PostgreSQLã«é¢ããŠã¯ãã¡ã¿æ
å ±ãæ€çŽ¢ãããã ãã©ã
> seqencesããŒãã«ã«ãincrementæ
å ±ãå
¥ã£ãŠãªã(!?)ã®ã§ã
> æç€ºçã«æ°å€ãæå®ããå¿
èŠããããŸãã
> ex) dfcache(50)
>
> ããšãSchemaHTMLã®PKå¶çŽã®è£è¶³(ããŒã«ããã)ã§ã
> ã·ãŒã±ã³ã¹ã®æ
å ±ãåºããã ãåºããŠã¿ãŸããã
>
> 2010/1/16 kubo <dbfl...@gmail.com>:
> > 2010/1/16 awaawa <p1us3inus2...@gmail.com>:
> ...
>
> ãã£ãšèªã â«
ã確èªããããšãããããŸãã
ãªãã»ã©ãåãªãã·ãŒã±ã³ã¹ååŸã§æ¹åããããŸããã
ã§ãã"4" ãéããã ãã...
DBå
ã®ã§ã·ãŒã±ã³ã¹ååŸåŠçèªäœãé
ããšããæ³å®ã
ããŠããã®ã§ãããäžã€ã®SQLå
ã§è€æ°ã®ã·ãŒã±ã³ã¹ååŸã ãšã
éãã®ããªã(DBå
ã§ã®ã·ãŒã±ã³ã¹ãžã®ã¢ã¯ã»ã¹ãäžåã§æžã
ãšããã®ããããããããŸããã)
ãã£ãã·ã¥ã®æ¹åŒã®ãããªããªãã·ã§ã³ãšããŠã
"union䜿ã£ããŸãšãã·ãŒã±ã³ã¹ååŸ" ãã§ããããã§ããã
å
éšã§ãã®SQLãçºè¡ããŠã50åæºããŠãããŠãã¢ããªã§ã¯
䜿ãåããŸã§ããã䜿ã£ãŠã䜿ãçµãã£ããå床SQLã§ååŸã
ãããããã·ãŒã±ã³ã¹ã®ã€ã³ã¯ãªã¡ã³ãã50ãšãã«ããªããŠã
"1" ã®ãŸãŸã§ããã£ãã·ã¥æ©èœãå©çšã§ããã®ããªããšã
(ãã¯ãçµç¹ã«å¯ã£ãŠã¯50ã«æµæã瀺ãããå Žåããããšæãã®ã§)
> ã»ãã¯ãªã¡ã³ãã®å Žåã倧äžå€«ã§ããããã(ãããŸã䜿ããªããšæããŸããã)
ãã¡ã§ããããã¯ãªã¡ã³ãã®å Žåã¯ãã£ãã·ã¥æ©èœãç¡å¹ã«ãªããŸãã
ãã ãããããã·ãŒã±ã³ã¹ã®å¢å50ã§ããã£ãã·ã¥ã§ã®å¢å2ãšãã
ã®ããµããŒãããŠãªãã£ãŠãããããç¹æ®ãªç¶æ³ã¯ã
ImplementedInvokeAssistantã®æ¡åŒµã§æåãå€ããããšã¯å¯èœã§ãã
ãã ãç°¡åã§ããã°ããµããŒãããŠã¿ãŠããããããæ€èšããŠã¿ãŸãã
é¢é£ããŠãããããReplaceSchemaã®ã·ãŒã±ã³ã¹èª¿æŽããã¡ã§ããã
ç¡éã«ãŒãã«ãªã£ã¡ããããããããŠäŸå€ã«ããã...
> ã»ã€ã³ã¯ãªã¡ã³ãã»ãã¯ãªã¡ã³ãã1ã-1ã®å Žåã¯
> åæããªãããšã¯å¯èœã§ããããã(ãã§ã«ãã£ãŠãã?)
if (cacheSize == null || cacheSize <= 1) {
ããäœãããªã(ãã£ãã·ã¥ããªã)
}
ãšããæããªã®ã§ãdfcacheãæå®ãããŠããŠãã
ãã£ãã·ã¥ã®å¿
èŠããªããã°ãã£ãã·ã¥ããŸããã
èŠã¯èªåå€å¥ãšããæãã§ãã
2010/1/17 awaawa <p1us3i...@gmail.com>:
ä»ãã¢ããããSNAPSHOT(ã¢ãžã¥ãŒã«ã®ã¿)ã§ã¯ã
ReplaceSchemaã®ã·ãŒã±ã³ã¹èª¿æŽã§decrementã®ãã®ã¯ã
(äºåã·ãŒã±ã³ã¹ååŸããŠå€å®ããæç¹ã§)åŠç察象å€ãšãªããŸãã
ãŸãããããããã¯ãªã¡ã³ãã®ã·ãŒã±ã³ã¹ãPKã«å©çšãããšã
ã®ã¿ç¶æ³ã«å¯Ÿãã察å¿ã§ãã(çžåœãã€ããŒããªãš)
> DBå
ã®ã§ã·ãŒã±ã³ã¹ååŸåŠçèªäœãé
ããšããæ³å®ã
> ããŠããã®ã§ãããäžã€ã®SQLå
ã§è€æ°ã®ã·ãŒã±ã³ã¹ååŸã ãšã
> éãã®ããªã(DBå
ã§ã®ã·ãŒã±ã³ã¹ãžã®ã¢ã¯ã»ã¹ãäžåã§æžã
> ãšããã®ããããããããŸããã)
ãããä»ã®ä»çµã¿ã§ãã
"çºè¡ããã·ãŒã±ã³ã¹ã®unionæ°-1 = ãã£ãã·ã¥ãµã€ãº"
ã§ããã°ãããŸãåããŸããã(ã¡ãã£ãšè©ŠããŠã¿ã)
èŠã¯ãããã«å¹çè¯ãã·ãŒã±ã³ã¹ã®çªå·ã "äºçŽããã" ã£ãŠ
ããšãªãã§ãããåçºã§ã·ãŒã±ã³ã¹ååŸãããç¡æå³ã§ããã
èŠã¯äžçºã®SQLã§äžæ°ã«50ãã€ã³ã¯ãªã¡ã³ãã§ããã°ããããã§ã
å
éšçã«ã¡ãã£ãšè²ã
æ€èšãããšããã¯ãããŸããã
ãããã§ãããããã¡ããæè»ã«å©çšããããšãã§ããããªãïŒïŒ
2010/1/17 kubo <dbf...@gmail.com>:
https://www.seasar.org/issues/browse/DBFLUTE-632
ãããªæãã«ããŠã¿ãŸããã
倧åãDBFluteããããåºãŠæ¥ãããããªãããšã
/= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
ïŒåºæ¬ïŒ
o dfcache()ãæå®ããªãéããã£ãã·ã¥ã¯ããªã
o ã©ããªç¶æ³ã§ãã "cacheSize" ã "1" 以äžãªããã£ãã·ã¥ããªã
ïŒcacheSizeçç¥ ":dfcache()" ã®å ŽåïŒ
ã¡ã¿æ
å ±ããååŸãã "incrementSize" ã "cacheSize" ãšããã
("incrementSize" ã "1" 以äžãªãäœãæå®ããªãã®ãšåã)
ïŒcacheSizeæå® ":dfcache(50)" ã®å ŽåïŒ
ã¡ã¿æ
å ±ããååŸãã "incrementSize" ãšæå®ããã "cacheSize"
ããäžèŽããŠããã°ãããã§éåžžã®ãã£ãã·ã¥åŠçãããã
äžèŽããŠãªã㊠"cacheSize / incrementSize" ã§å²ãåããå Žåã¯ã
äžåã®ã·ãŒã±ã³ã¹ååŸã§unionãå©çšã㊠"å²ã£ãæ°ã®åãincrement" ãã
ãã£ãã·ã¥åŠçããããå²ãåããªãå Žåã¯äŸå€ã
ããããã¡ã¿æ
å ±ãã "incrementSize" ãååŸã§ããªãDBMSã®å Žåã¯ã
äžèŽããŠããããšã倧åæãšãªãã(PostgreSQLã®ã¿..ã©ãã«ãããããª)
ïŒç¹åŸŽïŒ
incrementSizeãååŸã§ããDBMSãªããèšå®ã®ãºã¬ã«ããå€ãªåãã¯ããªãã
äœãããºã¬ãŠããå Žåã¯ãèªåçææãããã¯å®è¡æã«äŸå€ã«ãªãã
ããã«ãincrementSizeã "1" ã®ãŸãŸã§ãã£ãã·ã¥ãå©çšå¯èœã
PostgreSQLã ãã¯ãincrementSizeãååŸã§ããªãããããºã¬ã«æ°ãã€ãã
å¿
èŠãããããåžžã«cacheSizeãšincrementSizeã¯åãã§ãªããã°ãªããªãã
(ããã©ãã«ãããã)
= = = = = = = = = =/
ææ°ã®SNAPSHOTã«ãŠåæ ããŠããŸãã
(ã©ã³ã¿ã€ã 㯠"04-SNAPSHOT")
ãµã€ãºãäžç·(çç¥ãå«ã)ã§ããã°ãawaawaããã«
æ€èšŒããŠããã£ããã€ã® "2" ã«çžåœããŠã
ãµã€ãºãéã£ãŠå²ãåããã®ã§ããã°ã"4" ã«çžåœããŸãã
äžäžåã®unionãããªãã®ã§(cacheSizeåã®union)ããããŸã§
éãçµæã¯ã§ãªããããããŸããããincrementSizeã "1" ã®
ãŸãŸã§ãå©çšåºæ¥ãããèšå®ãºã¬ããã§ãã¯åºæ¥ãããªã®ã§ã
è¶
éããªããŠãè¯ãæããªããããªãããšã
(å°ãªããšãSQLã®çºè¡åæ°ã¯æžãã)
2010/1/17 kubo <dbf...@gmail.com>:
https://www.seasar.org/issues/browse/DBFLUTE-632
ããã«çºå±ããŸããã
åæãªããïŒ
o ã€ã³ã¯ãªã¡ã³ãã50ã«ããæ¹æ³ = ã€ã³ã¯ãªã¡ã³ãæ¹åŒ(incrementWay)
o unionãšã䜿ã£ãŠäžåã®SQLã§äžæ°ã«50åæ¡çª = ãããæ¹åŒ (batchWay)
ãšååãä»ããããŠé ããŸããã
ææ°ã®SNAPSHOTã«ãŠåæ ã
(ã©ã³ã¿ã€ã 㯠"08-SNAPSHOT")
ãã¹ããããããã®DBã§ããããã®æ¹æ³ã詊ããŠããŸãã
ã€ã³ã¯ãªã¡ã³ãæ¹åŒïŒOracle, PostgreSQL, H2, DB2
ãããæ¹åŒïŒOracle, PostgreSQL, H2
â»DB2ã§ãããæ¹åŒã¯æªãµããŒã (unionã§ããªã!?)
/= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
ïŒåºæ¬ïŒ
o dfcache()ãæå®ããªãéããã£ãã·ã¥ã¯ããªã
o ã©ããªç¶æ³ã§ãã "cacheSize" ã "1" 以äžãªããã£ãã·ã¥ããªã
o decrementã¯ãã£ãã·ã¥æ©èœããµããŒãããªã(å®è¡æäŸå€)
o serialå(PostgreSQL)ã§ãæç€ºçã«dfpropã«æå®ããã°å©çšå¯èœ
ïŒcacheSizeçç¥ ":dfcache()" ã®å ŽåïŒ
ã¡ã¿æ
å ±ããååŸãã "incrementSize" ã "cacheSize" ãšããã
("incrementSize" ã "1" 以äžãªãäœãæå®ããªãã®ãšåã)
ïŒcacheSizeæå® ":dfcache(50)" ã®å ŽåïŒ
ã¡ã¿æ
å ±ããååŸãã "incrementSize" ãšæå®ããã "cacheSize"
ããäžèŽããŠããã°ãããã§éåžžã®ãã£ãã·ã¥åŠçãããã
äžèŽããŠãªã㊠"cacheSize / incrementSize" ã§å²ãåããå Žåã¯ã
äžåã®ã·ãŒã±ã³ã¹ååŸã§unionãå©çšã㊠"å²ã£ãæ°ã®åãincrement" ãã
ãã£ãã·ã¥åŠçããããå²ãåããªãå Žåã¯äŸå€ã
ããããã¡ã¿æ
å ±ãã "incrementSize" ãååŸã§ããªãDBMSã®å Žåã¯ã
äžèŽããŠããããšã倧åæãšãªãã(ãµããŒãããŠããDBã¯å
šãŠOK)
ããããäžåã®ã·ãŒã±ã³ã¹ååŸã§unionãå©çšããããšãã§ããªãDBMSã®å Žåã¯ã
äžèŽããŠããããšã倧åæãšãªãã(DB2ã®ã¿...ããã¯ããããªã仿¹ãªã)
äœãããã®å Žåã¯æç€ºçãªäŸå€ã«ãªãã®ã§ãºã¬ãæããããšã¯ãªã
ïŒç¹åŸŽïŒ
incrementSizeãååŸã§ããDBMSãªããèšå®ã®ãºã¬ã«ããå€ãªåãã¯ããªãã
äœãããºã¬ãŠããå Žåã¯ãèªåçææãããã¯å®è¡æã«äŸå€ã«ãªãã
ããã«ãincrementSizeã "1" ã®ãŸãŸã§ãã£ãã·ã¥ãå©çšå¯èœã
ïŒãã®ä»ïŒ
PostgreSQLã§incrementSizeãååŸã§ããŠããªãã£ãã®ã§ããã
"pgsql-jp: 40143" ã«ãŠæããŠé ããŸãã(ããããšãããããŸã)ã
"information_schema" ããã¯ãã¯ãååŸã§ããªããŠã
"select increment_by from [sequence]" ãšå®è¡ããããšã§ååŸã§ããŸããã
= = = = = = = = = =/
2010/1/17 kubo <dbf...@gmail.com>:
ãã¯ãªã¡ã³ãã®ä»¶ãäºè§£ã§ãã
ã€ã³ã¯ãªã¡ã³ã1ã®å Žåã®åäœãäºè§£ã§ãã
> https://www.seasar.org/issues/browse/DBFLUTE-632
ããããåºãŠãŸã!!ããããšãããããŸãã
â»èšå®æ¬¡ç¬¬ã§ãããããªã±ãŒã¹ã«å¯Ÿå¿ã§ããŸããïœ
ã¡ãã£ãšæ°ã«ãªãã®ããunionã®äžæ¬ååŸã§ã·ãŒã±ã³ã¹é£ç¶ååŸãä¿éããããã§ããã
åæã«è€æ°ãªã¯ãšã¹ããæ¥ããšãã«ãéããããªããã
(ã·ãŒã±ã³ã¹ã®ãªã¹ããæã£ãŠããæãã§ããããããã§ããã°æ°ã«ããããšãªãã§ãã)
ãã¡ãã§ã確èªããŸãã(ç°å¢äžh2ãšoracleã ãã§ãã + ã¡ãã£ãšãæéãããã ããŸãã)
> 2010/1/17 kubo <dbfl...@gmail.com>:
> > 2010/1/17 kubo <dbfl...@gmail.com>:
> >> jfluteã§ãã
>
> >> ä»ãã¢ããããSNAPSHOT(ã¢ãžã¥ãŒã«ã®ã¿)ã§ã¯ã
> >> ReplaceSchemaã®ã·ãŒã±ã³ã¹èª¿æŽã§decrementã®ãã®ã¯ã
> >> (äºåã·ãŒã±ã³ã¹ååŸããŠå€å®ããæç¹ã§)åŠç察象å€ãšãªããŸãã
> >> ãŸãããããããã¯ãªã¡ã³ãã®ã·ãŒã±ã³ã¹ãPKã«å©çšãããšã
> >> ã®ã¿ç¶æ³ã«å¯Ÿãã察å¿ã§ãã(çžåœãã€ããŒããªãš)
>
> >>> DBå
ã®ã§ã·ãŒã±ã³ã¹ååŸåŠçèªäœãé
ããšããæ³å®ã
> >>> ããŠããã®ã§ãããäžã€ã®SQLå
ã§è€æ°ã®ã·ãŒã±ã³ã¹ååŸã ãšã
> >>> éãã®ããªã(DBå
ã§ã®ã·ãŒã±ã³ã¹ãžã®ã¢ã¯ã»ã¹ãäžåã§æžã
> >>> ãšããã®ããããããããŸããã)
>
> >> ãããä»ã®ä»çµã¿ã§ãã
> >> "çºè¡ããã·ãŒã±ã³ã¹ã®unionæ°-1 = ãã£ãã·ã¥ãµã€ãº"
> >> ã§ããã°ãããŸãåããŸããã(ã¡ãã£ãšè©ŠããŠã¿ã)
> >> èŠã¯ãããã«å¹çè¯ãã·ãŒã±ã³ã¹ã®çªå·ã "äºçŽããã" ã£ãŠ
> >> ããšãªãã§ãããåçºã§ã·ãŒã±ã³ã¹ååŸãããç¡æå³ã§ããã
> >> èŠã¯äžçºã®SQLã§äžæ°ã«50ãã€ã³ã¯ãªã¡ã³ãã§ããã°ããããã§ã
> >> å
éšçã«ã¡ãã£ãšè²ã
æ€èšãããšããã¯ãããŸããã
> >> ãããã§ãããããã¡ããæè»ã«å©çšããããšãã§ããããªãïŒïŒ
>
> >> 2010/1/17 kubo <dbfl...@gmail.com>:
> >>> 2010/1/17 awaawa <p1us3inus2...@gmail.com>:
> >>>> awaawaã§ãã
>
> >>>> é
ããªããŸãããããã¡ãã§ãããã©ãŒãã³ã¹ã«éç¹ã眮ããç°¡åãªç¢ºèªãããŸããã
> >>>> ãšããããçŸæç¹ã§ã®å ±åã§ãã
>
> >>>> 以äžã§ã1äžä»¶åã®ã·ãŒã±ã³ã¹çªå·ãæ¡çªããŠã¿ãŸããã(ãšããããinsertãªãã§)
> >>>> â»PCã¹ããã¯ããããã¯ãŒã¯ç圱é¿ã¯ãããŸãããçžå¯Ÿçã«èŠãæãã§ã
> >>>> 1. selectNextVal() â»dfcache(100)
> >>>> 2. selectNextVal() â»dfcacheãªã
> >>>> 3. å€ã ãSQL select XXX.nextVal from dual
> >>>> 4. å€ã ãSQL select XXX.nextVal from (select * from dual union select *
> >>>> from dual union ...) â»åã蟌ã¿å€æ°ã³ã¡ã³ãã§1äžåunionããã
>
> >>>> å¹³å 1åç® 2åç® 3åç® 4åç® 5åç®
> >>>> 1. 20.034 19.906 19.657 19.890 20.640 20.078
> >>>> 2. 37.826 38.187 37.781 38.460 38.453 36.250
> >>>> 3. 42.559 43.187 44.000 43.156 40.937 41.516
> >>>> 4. 8.741
>
> ...
>
> ãã£ãšèªã â«
> ã¡ãã£ãšæ°ã«ãªãã®ããunionã®äžæ¬ååŸã§ã·ãŒã±ã³ã¹é£ç¶ååŸãä¿éããããã§ããã
ããã¯ãæ¢ã«æ°ã«ããŠãŠã
H2ãPostgreSQLã§ã¯ã
select next value for SEQ_MEMBER
union all
select next value for SEQ_MEMBER
...
order by 1 asc
ãšããŠããŸããunion allãé åºãä¿èšŒããªãã®ã§ã
(ãã ãå®éã«ã¯orderããªããŠé çªéãæ¥ãŸãã)
ã§ãOracleã¯order byãã§ããªããŠå°ã£ãã
ãšãããããããSQLã ããããã
ã§ãorder byã¯ã§ããªãã£ããã©ã
ãã®å Žåã¯ãçµæãunion allããŠããããããªããŠã
ç䌌ã¬ã³ãŒããunion allã§äœæããŠãé åºã決ãŸã£ã
ãã®ç䌌ã¬ã³ãŒãã®selectå¥ãè©äŸ¡ãã課çšã§nextvalãªã®ã§ã
倧äžå€«ãããªãããªãšããæšæž¬ã(ãšããããå®éã«ã¯æ£åžžã«åäœ)
Oracleã®ãšãã ããã¢ããªã§ã·ãŒã±ã³ã¹ãå
šä»¶ååŸããŠã
ã«ãŒãã§äžçªå°ããªå€ãæŸãããã«ãããã©ãã...
(ãã£ããããã©ãŒãã³ã¹ã®ããã«ãã£ãŠãã®ã«ããããã¯ãªããã)
> åæã«è€æ°ãªã¯ãšã¹ããæ¥ããšãã«ãéããããªããã
å
±æããã¯ãšããèãããã·ãŒã±ã³ã¹ã«ãããŠãéçšãããïŒïŒ
çŸç¶ã®å®è£
ã ãšã·ãŒã±ã³ã¹ã®ãªã¹ãã¯ååŸããŠãªãã§ã(å
é ååŸ)ã
ãããéããããšããããå¥ã¢ããªã§åæã«ã·ãŒã±ã³ã¹ã
å©çšããå Žåã«åé¡ãçºçãããã
o ãã ã²ããããã¹ãæžããŠå€§äžå€«ãªããšä¿èšŒãã
o äœãããã®DBãªããžã§ã¯ãã«ããã¯æãã
o ã·ãŒã±ã³ã¹å€å
šéšååŸããŠæãçªèª¿ã¹ãŠããŸãé£ã°ã
ãŸã ãŸã æŠããã...
2010/1/18 awaawa <p1us3i...@gmail.com>:
ææ°ã®SNAPSHOT
(ã©ã³ã¿ã€ã ïŒ09-SNAPSHOT)
ã§ãbatchWayã®æ¹ã¯ãååŸããã·ãŒã±ã³ã¹ããã®ãŸãŸ
å²ãåœãŠãããã«ããŸããããªã®ã§ãå²ã蟌ã¿ã§æãçªãåºãŠãã
ååŸããå€ããã ãã®ãŸãŸå²ãåœãŠãã®ã§åé¡ãããŸããã
ãã ããããæ€èšŒããã®ã¯å€§å€ã§ãåœç¶ã®ããšèªã¢ããªå
ã§ã¯
ã¬ãããªsyncããŠåºããŠããã®ã§ãçŸè±¡ãçºçãããããã«ã¯ã
å¥ã¢ããªããè¶
åæã«ã·ãŒã±ã³ã¹ã«ã¢ã¯ã»ã¹ããªããã°ãªããŸããã
ããã¯Exampleã§ããã¹ãã§ããŠãªãã®ã§ãè«ççãªæ€èšŒã«çãŸã£ãŠããŸãã
(èªã¢ããªå
ã§ã®ãã«ãã¹ã¬ãããã¹ãã¯ãã«ãã«ããªããã€ãã®ãã£ãŠãŸã)
ãŸããé åºãã©ããå
šéšååŸããŠããã®ã§ãã¢ããªäžã§ãœãŒãããŠã
å°ããé ã§ååŸãããããã«ããŠããŸãã
æ°ã«ãªãã®ã¯ãincrementWayãšbatchWayã®ããã©ãŒãã³ã¹å·®ã
batchWayãã¡ãã£ãšå®å
šã®ããã«åŠçãå¢ããŠããã®ã§ã
ã©ããªæãããªãšããŸããããªããããéããã°OKãªã®ã§ããã
ããšãbatchWayã®ç¹åŸŽãšããŠã¯ã
æ¯èŒçcacheSizeã倧ããã«ãããããšãããšããã§ãã
cacheSizeã倧ãããããšãç»é²é çªãé転ããå¯èœæ§ã倧ãããªãã®ã¯
ã©ã¡ãã®æ¹åŒãåãã§ãããåãä»çµã¿ãæããªã(ãã ã®ã¹ã¯ãªãããšã)
ã¢ããªããã·ãŒã±ã³ã¹å©çšãããšãã«incrementWayã¯é£ã³çªããŸããã§ããã
batchWayã¯ã·ãŒã±ã³ã¹ã®ã€ã³ã¯ãªã¡ã³ãããããã "1" ãªã®ã§ç¹ãããŸãã
ãªã®ã§ãåãcacheSizeã§batchWayãé
ããŠããäžæŠã«ã©ã£ã¡ãè¯ããšã¯
èšããªãã§ããã
#
# æã ã...
#
2010/1/18 kubo <dbf...@gmail.com>:
äžæŠããã®æç¹ã§ã
DBFlute-0.9.6.4-RC1ãšããŸããã
(ã©ã³ã¿ã€ã ïŒRC1)
2010/1/18 kubo <dbf...@gmail.com>:
https://www.seasar.org/issues/browse/DBFLUTE-632
"ãã£ãã·ã¥ãµã€ãºã "1" 以äžã®å Žåã¯äœãããªã"
ã§ãããã
"ãã£ãã·ã¥ãµã€ãºã "1" 以äžã®å Žåã¯æç€ºçãªäŸå€"
ãšããŠããŸã(RC1ã«å«ãŸããŠããŸã)ã
èªåçææã«ãã§ãã¯ããŠäŸå€ã«ããŠããŸãã
ãšããã®ã¯ã"ãã£ãã·ã¥ãå©çšãã" ã£ãŠèšå®ãããŠãªããã
ãã£ãã·ã¥ãµã€ãºã "1" ã£ãŠééãã§ãããªãã®ã§ãã¯ãäŸå€ãšã
å®è¡æã®ãã§ãã¯ã¯å®ã¯ãã®ãŸãŸã§ "ãã£ãã·ã¥ããªãã ã"
ã§ããããã£ãšåã®æ®µéã®èªåçææã§ã®ãã§ãã¯ãšããããšã§ã
2010/1/18 kubo <dbf...@gmail.com>:
ããããã®èæ ®ããç²ãæ§ã§ãã
> æ°ã«ãªãã®ã¯ãincrementWayãšbatchWayã®ããã©ãŒãã³ã¹å·®ã
> batchWayãã¡ãã£ãšå®å
šã®ããã«åŠçãå¢ããŠããã®ã§ã
> ã©ããªæãããªãšããŸããããªããããéããã°OKãªã®ã§ããã
ããã¯ãæéãããšãã«æ°å€ãåºããŠã¿ãããšæããŸãã
> "ãã£ãã·ã¥ãµã€ãºã "1" 以äžã®å Žåã¯æç€ºçãªäŸå€"
äºè§£ã§ãã
> å®è¡æã®ãã§ãã¯ã¯å®ã¯ãã®ãŸãŸã§ "ãã£ãã·ã¥ããªãã ã"
ããããèªåçææã«ã€ã³ã¯ãªã¡ã³ããµã€ãºã決å®(éç)ããŠããã®ã§ããã°ã
ããããªãã£ãŠããšã§ãããã
(ãããšããå®è¡æã«ã€ã³ã¯ãªã¡ã³ããµã€ãºãåãåãããŠããŠå Žåã«ãã£ãŠã¯ãããããã§ãããã)
On 1æ18æ¥, ååŸ11:35, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> https://www.seasar.org/issues/browse/DBFLUTE-632
>
> "ãã£ãã·ã¥ãµã€ãºã "1" 以äžã®å Žåã¯äœãããªã"
>
> ã§ãããã
>
> "ãã£ãã·ã¥ãµã€ãºã "1" 以äžã®å Žåã¯æç€ºçãªäŸå€"
>
> ãšããŠããŸã(RC1ã«å«ãŸããŠããŸã)ã
> èªåçææã«ãã§ãã¯ããŠäŸå€ã«ããŠããŸãã
>
> ãšããã®ã¯ã"ãã£ãã·ã¥ãå©çšãã" ã£ãŠèšå®ãããŠãªããã
> ãã£ãã·ã¥ãµã€ãºã "1" ã£ãŠééãã§ãããªãã®ã§ãã¯ãäŸå€ãšã
>
> å®è¡æã®ãã§ãã¯ã¯å®ã¯ãã®ãŸãŸã§ "ãã£ãã·ã¥ããªãã ã"
> ã§ããããã£ãšåã®æ®µéã®èªåçææã§ã®ãã§ãã¯ãšããããšã§ã
>
> 2010/1/18 kubo <dbfl...@gmail.com>:
>
> > jfluteã§ãã
>
> > äžæŠããã®æç¹ã§ã
> > DBFlute-0.9.6.4-RC1ãšããŸããã
> > (ã©ã³ã¿ã€ã ïŒRC1)
>
> > 2010/1/18 kubo <dbfl...@gmail.com>:
> >> 2010/1/18 kubo <dbfl...@gmail.com>:
> >>> 2010/1/18 awaawa <p1us3inus2...@gmail.com>:
> ...
>
> ãã£ãšèªã â«
>> æ°ã«ãªãã®ã¯ãincrementWayãšbatchWayã®ããã©ãŒãã³ã¹å·®ã
>> batchWayãã¡ãã£ãšå®å
šã®ããã«åŠçãå¢ããŠããã®ã§ã
>> ã©ããªæãããªãšããŸããããªããããéããã°OKãªã®ã§ããã
> ããã¯ãæéãããšãã«æ°å€ãåºããŠã¿ãããšæããŸãã
ãããããŒãŒ
ããŠãæ°åãã®å
¥ã£ãBlogãæžãããªãã
> ããããèªåçææã«ã€ã³ã¯ãªã¡ã³ããµã€ãºã決å®(éç)ããŠããã®ã§ããã°ã
> ããããªãã£ãŠããšã§ãããã
æ¹æ
2010/1/19 awaawa <p1us3i...@gmail.com>:
http://d.hatena.ne.jp/jflute/20100119/1263871052
æ°åãå
¥ã£ãã®æžããã
æèåããã£ãŠæãã§èªãããšãã«èªãã§ãããŠäžããã
(ã§ããã°ãä»ã®çããã)
2010/1/19 kubo <dbf...@gmail.com>:
ããã°ã³ã¡ã³ãã®ç¶ãã§ãã
ããããæ€èšŒäžã«ãããæ¹åŒã§åé¡ãã
ããã©ãŒãã³ã¹æ€èšŒã§ããããæ¹åŒã§10,000ã§è¡ã£ãã®ã§ããã
unioné£çµã§SQLæã®ãµã€ãºéç(?)ã«ãªããäŸå€ã«ãªããŸããã
ã»java.sql.SQLException: ãœã±ããããèªã¿èŸŒãããŒã¿ã¯ãã以äžãããŸããã
2,820ã¯OK(2,830ã¯NG)ã§ããã
â»10,000ã§1MBã¡ãã£ãšãé·ããã§ããã»ã»ã»
ã§ãã¡ãã£ãšåæžãããããšã以äžãçŽå©ãã§ãã£ããã§ãããåãè¡ã¯åãã·ãŒã±ã³ã¹çªå·ãæ»ã£ãŠããŸãã!
(äžæè°ãŒ)
select SEQ_TEST.nextval, SEQ_TEST.nextval from (select * from dual
union all ...)
ã£ãŠããšã§ãããçšåºŠå¶éããã»ããããã¿ããã§ãã
(ãã ã©ãããããOKã£ãŠæéããªããã§ãããã)
èŠã¯è€æ°è¡è¿ã£ãŠããã°ãããã§ããã©ãã(è¡šé¢æ°ãæè»œã«äœ¿ããã°)
åŸã1ã€ææ¡ãã
以åå€ã ãSQLã§insertæã«nextvalãåã蟌ãã§å€§éä»¶æ°ãå®è¡ããã®ã§ããã
foræã§executeå®è¡ã§ããã(ãªã®ã§æ€èšŒã®ä»æ¹ãæªãã£ãããã§ãã)
å€ã ãSQLã§executeBatchãããã°æ©ãããã§ãã(çŸç¶ãµããŒãããŠããªããšæããŸãã)
ã§ããããæ©ããã°ãjfluteããã以åãã£ããã£ã
ãbatchInsert()ã§insertæåãèŸŒã¿æ©èœããæå¹ã«ã
> èŠã¯è€æ°è¡è¿ã£ãŠããã°ãããã§ããã©ãã(è¡šé¢æ°ãæè»œã«äœ¿ããã°)
ã²ããããŸãã!ãåçŽçµå(cross join)!! (ãŸããŸãããªãããŒã§ãã)
select SEQ_MEMBER_SEQ_CACHE_BATCH.nextval from
(select * from dual union all ...(èš10å))
, (select * from dual union all ...(èš10å))
, (select * from dual union all ...(èš10å))
...(å®éã»ããè¡æ°ãã1æ¡å€ãè¡æ°ã«ãªããŸã§ç¹°ãè¿ã)
where rownum <= å®éã»ããè¡æ°
ãããªã10ã®nå°ã§æ»ãè¡æ°ãå¢ãããŸãã(+rownumã§å¶éããŠããã®ã§ãã·ãŒã±ã³ã¹çªå·ãé£ã³ãŸãã)
ã©ãã§ããããŒ
awaawaãããããããšãïŒ
ãŸãšãããš...
[åé¡]
Oracleã§ã®ãããæ¹åŒã§ã¯ããã£ãã·ã¥ãµã€ãºã«éçããã
2,820ã¯OK(2,830ã¯NG)
远å ïŒ
PostgreSQLã ãšã10000ã§ãåé¡ãªãã
ã§ãã·ãŒã±ã³ã¹ååŸSQLèªäœãé
ãã(3ç§è¿ã)
H2ã ãšãåç¬ã¹ã¬ããã§10000ã§å®è¡ã§ãããã©ã20000ã§
SQLãè¿ã£ãŠããªããã¡ã¢ãªãšã©ãŒã"StackOverFlowError"
ãšäžå®å®ãããšããã£ã±ããã®SQLã®å®è¡èªäœãé
ãã
Oracleã§ããã£ãã·ã¥ãµã€ãº "2000" ã§äžç§åè¿ãã
[詊è¡]
select SEQ_TEST.nextval, SEQ_TEST.nextval from
ã ãšãåãã¬ã³ãŒãå
ã§åãçªå·ã«ãªã£ãŠããŸãã
(åãã¬ã³ãŒãå
ã§ã¯å
éšçã«çªå·ã䜿ãåããŠãã®ããã)
[解決æ¡]
<A>
Oracleã§ã¯ "Cross Join" ãå©çšããã
select SEQ_MEMBER_SEQ_CACHE_BATCH.nextval from
(select * from dual union all ...(èš10å))
, (select * from dual union all ...(èš10å))
, (select * from dual union all ...(èš10å))
...(å®éã»ããè¡æ°ãã1æ¡å€ãè¡æ°ã«ãªããŸã§ç¹°ãè¿ã)
where rownum <= å®éã»ããè¡æ°
<B>
2,820ãªããã£ãã·ã¥ãµã€ãºãšããŠååãšããããšã§ã
DBFluteã®ä»æ§ãšããŠãå¶éãšããã
(2000ãããã§æç€ºçãªå¶éãæããŠãã!?)
[æžå¿µ]
o "A" ã®æ¡ã®SQLã¯ãSQLã®å®è¡èªäœãé
ããªããªãã ãããïŒ
o ããããããã£ãã·ã¥ãµã€ãºã倧ãããããšãã·ãŒã±ã³ã¹ååŸã®
é床ã«ãã©ãããçºçããŠããŸããªãã ãããïŒ
ã·ãŒã±ã³ã¹ååŸSQLçºè¡æã ãç®ç«ã£ãŠé
ãã®ã¯ãŸããããªãšã
ããããªããŸã ãããªã³ã©ã€ã³ã ãšç»é¢åŠçã«åœ±é¿ãã¡ããã
[èå¯]
æžå¿µäºé
ãèãããšããããããã£ãã·ã¥ãµã€ãºã«å¶éã
èšããŠãããããªãšæãã®ã§ãããã©ãã§ãããïŒ
ãããŸããã·ãŒã±ã³ã¹çºè¡æã®SQLãéããªãã®ããããªããã
ãã£ãã·ã¥ãµã€ãº "100" ãã "1000" ãããã§ããããªã
ããã©ãŒãã³ã¹ã¯åäžããããšã
batchInsert()ã®ä»¶ã¯ããã£ãã·ã¥æ©èœã®ãããæ¹åŒã
ããŸãããã°ãå¿
èŠæ§ããªããªãããªããšã
2010/1/24 awaawa <p1us3i...@gmail.com>:
ã¡ãã£ãšç¢ºãããŠã¿ãŸããã
ã·ãŒã±ã³ã¹10,000ååŸã§ããããæ¹åŒãã£ãã·ã¥ãµã€ãº2000ã§ã
ã»unionã§2000åã®å ŽåãååçŽ4000ããªç§ã§2åç®ä»¥éãçŽ150ããªç§
ã»åçŽçµå(unionã§10åã4ååçŽçµåã§rownum2000æå®)ã®å ŽåãååçŽ1200ããªç§ã§2åç®ä»¥éãçŽ150ããªç§
åæ¹ãšã2åç®ã¯ã¯ãšãªã®è§£æåã®ã³ã¹ããããã£ãŠããªããšæãããŸãã
(å®éã¯ãããããªã¯ãšãªãå®è¡ãããã®ã§ããã£ãã·ã¥ã䜿ãããããšã¯ãŸãããš)
> Oracleã§ããã£ãã·ã¥ãµã€ãº "2000" ã§äžç§åè¿ãã
ããã¯ããã·ã³ã¹ããã¯ã®éãã§ãããã
> o "A" ã®æ¡ã®SQLã¯ãSQLã®å®è¡èªäœãé
ããªããªãã ãããïŒ
ããã¯ãããããäžèšãã倧äžå€«ããšããããã¯ãšãªè§£æåæ©ãã
> o ããããããã£ãã·ã¥ãµã€ãºã倧ãããããšãã·ãŒã±ã³ã¹ååŸã®
> é床ã«ãã©ãããçºçããŠããŸããªãã ãããïŒ
ããã¯ç¢ºãã«ããã§ããã
ã§ããã°ãåçŽçµåãã¿ãŒã³ã«ããŠããµã€ãºã¯èªå·±è²¬ä»»ã§ããããšã
SQLæã®ãµã€ãºéç(?)ãäœãæç¢ºã«ããããªãã®ã§ã(DB仿§ãããã·ã³äŸåããèšå®äŸåã)
+ ã³ã£ããSQLãè¥å¹²æ¹åããããšããã£ãã·ã¥ãµã€ãº "100" ãã "1000" ãããã§ãã
PostgreSQLãåçŽçµåOKãH2ããããã倧äžå€«ããšã
ãããã§ããããã
> 2010/1/24 awaawa <p1us3inus2...@gmail.com>:
ãšãããããcross joinæ¹åŒã®æ¹ããSQLèªäœãéããšããããšã§ã
Oracleã®å Žåã«éãããã®ããã«ããŠã¿ãŸããã
PostgreSQLãH2ã®å Žåãdual衚ã¿ãããªã®ã(å€å)ç¡ããããªã®ãšã
ããããåé¡ã«ã¯ãªã£ãŠãªãã®ã§ãã®ãŸãŸã§ãã
(Oracleã ãã®ç¹æ®åŠçãšããæãã§æ±ã£ãŠããŸã)
ããšãã£ãã·ã¥ãµã€ãºã®å¶éã«é¢ããŠã¯ãããã¥ã¡ã³ãã«ã
"倧ãããããšãã£ãã·ã¥ååŸã®SQLãç®ç«ã£ãŠéãããå³é泚æ"
ãšããã£ããæžãããã«ããŠãå¶éãªããšããŸãããããã
(倧ãããµã€ãºã¯ããã¥ã¡ã³ãäžã®ã¿ã®éæšå¥šãšããæãã§)
DBFluteã©ã³ã¿ã€ã : 0.9.6.4-12-SNAPSHOT
ã§ã詊ãäžããã(ã¢ãžã¥ãŒã«ã¯RC2ã®ãŸãŸã§)
ãã£ãã·ã¥ãµã€ãºãå°ãããšã倧ãããšãã®
äž¡æ¹ã®ãã¹ããé¡ãããŸãã
(SQLã®çµç«ãŠåŠçãè€éã«ãªã£ãŠããã®ã§)
2010/1/25 awaawa <p1us3i...@gmail.com>:
"èšå€§ãªãã£ãã·ã¥ãµã€ãºãå¶éããŠããªãããš"
ãšããã®ããã£ãããã¹ããããããã«ã
ã¢ãžã¥ãŒã«ã»ã©ã³ã¿ã€ã å
±ã« "RC3" ãšããŠå
¬éããŸããã
(ã¢ãžã¥ãŒã«ã¯ãEMechaããããŠã³ããŒãå¯èœ)
ãã¡ãã§ã¯ "dbflute-oracle-example" ã«ãŠã
ãã£ãã·ã¥ãµã€ãº[8, 12, 10000, 10001]ã§è©ŠããŸããã
(ã³ãããããŠããã®ã¯ "12")
å
éšçãªåŠçãšããŠã
SQLã®çµã¿ç«ãŠæã«ã"cross join" ãããå Žåã®ã¬ã³ãŒãæ°
ãšããã®ãèšç®ããããã«ããŠãååŸããã·ãŒã±ã³ã¹æ°ã«
éããã "dual" ã®è¿œå ããããããã«ããŠããŸãã
ãªã®ã§ã"10000" ã ã£ãããžã£ã¹ããµã€ãºã«ãªããŸãã
ãã®å Žåãå®éã«ã¯rownumã«ããçµãããªããŠã倧äžå€«ã«
ãªããŸãã(äžå¿ãäžåŸæ¡ä»¶ã¯ä»äžããŠããŸãã)
"10001" ã ã£ããã"100000" ã§ã¯ãªã "20000" ã¬ã³ãŒãã«
ãªããŸãããšããæãã§ã極åããã©ãŒãã³ã¹å£åããªã
ããã«ããŠããŸããã100ãè¶
ããæå®ãããå Žåã¯ã
åºæ¬çã«ã¯ã100, 200, 1000, 2000, 5000, 10000
ãšããããã«ãããªã®è¯ããµã€ãºãã奚ãã§ãã
(100以äžã¯ããŸãæ°ã«ããå¿
èŠã¯ãªãããš)
2010/1/25 kubo <dbf...@gmail.com>:
ã察å¿ããããšãããããŸãã確èªããŸããã
> å
éšçãªåŠçãšããŠã
> SQLã®çµã¿ç«ãŠæã«ã"cross join" ãããå Žåã®ã¬ã³ãŒãæ°
> ãšããã®ãèšç®ããããã«ããŠãååŸããã·ãŒã±ã³ã¹æ°ã«
> éããã "dual" ã®è¿œå ããããããã«ããŠããŸãã
ãããã§ãã
æ€èšŒç¶ããŸããŒ
On 1æ25æ¥, ååŸ12:54, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> "èšå€§ãªãã£ãã·ã¥ãµã€ãºãå¶éããŠããªãããš"
> ãšããã®ããã£ãããã¹ããããããã«ã
>
> ã¢ãžã¥ãŒã«ã»ã©ã³ã¿ã€ã å
±ã« "RC3" ãšããŠå
¬éããŸããã
> (ã¢ãžã¥ãŒã«ã¯ãEMechaããããŠã³ããŒãå¯èœ)
>
> ãã¡ãã§ã¯ "dbflute-oracle-example" ã«ãŠã
> ãã£ãã·ã¥ãµã€ãº[8, 12, 10000, 10001]ã§è©ŠããŸããã
> (ã³ãããããŠããã®ã¯ "12")
>
> å
éšçãªåŠçãšããŠã
> SQLã®çµã¿ç«ãŠæã«ã"cross join" ãããå Žåã®ã¬ã³ãŒãæ°
> ãšããã®ãèšç®ããããã«ããŠãååŸããã·ãŒã±ã³ã¹æ°ã«
> éããã "dual" ã®è¿œå ããããããã«ããŠããŸãã
> ãªã®ã§ã"10000" ã ã£ãããžã£ã¹ããµã€ãºã«ãªããŸãã
> ãã®å Žåãå®éã«ã¯rownumã«ããçµãããªããŠã倧äžå€«ã«
> ãªããŸãã(äžå¿ãäžåŸæ¡ä»¶ã¯ä»äžããŠããŸãã)
> "10001" ã ã£ããã"100000" ã§ã¯ãªã "20000" ã¬ã³ãŒãã«
> ãªããŸãããšããæãã§ã極åããã©ãŒãã³ã¹å£åããªã
> ããã«ããŠããŸããã100ãè¶
ããæå®ãããå Žåã¯ã
> åºæ¬çã«ã¯ã100, 200, 1000, 2000, 5000, 10000
> ãšããããã«ãããªã®è¯ããµã€ãºãã奚ãã§ãã
> (100以äžã¯ããŸãæ°ã«ããå¿
èŠã¯ãªãããš)
>
> 2010/1/25 kubo <dbfl...@gmail.com>:
>
> > jfluteã§ãã
>
> > ãšãããããcross joinæ¹åŒã®æ¹ããSQLèªäœãéããšããããšã§ã
> > Oracleã®å Žåã«éãããã®ããã«ããŠã¿ãŸããã
> > PostgreSQLãH2ã®å Žåãdual衚ã¿ãããªã®ã(å€å)ç¡ããããªã®ãšã
> > ããããåé¡ã«ã¯ãªã£ãŠãªãã®ã§ãã®ãŸãŸã§ãã
> > (Oracleã ãã®ç¹æ®åŠçãšããæãã§æ±ã£ãŠããŸã)
>
> > ããšãã£ãã·ã¥ãµã€ãºã®å¶éã«é¢ããŠã¯ãããã¥ã¡ã³ãã«ã
> > "倧ãããããšãã£ãã·ã¥ååŸã®SQLãç®ç«ã£ãŠéãããå³é泚æ"
> > ãšããã£ããæžãããã«ããŠãå¶éãªããšããŸãããããã
> > (倧ãããµã€ãºã¯ããã¥ã¡ã³ãäžã®ã¿ã®éæšå¥šãšããæãã§)
>
> > DBFluteã©ã³ã¿ã€ã : 0.9.6.4-12-SNAPSHOT
>
> > ã§ã詊ãäžããã(ã¢ãžã¥ãŒã«ã¯RC2ã®ãŸãŸã§)
> > ãã£ãã·ã¥ãµã€ãºãå°ãããšã倧ãããšãã®
> > äž¡æ¹ã®ãã¹ããé¡ãããŸãã
> > (SQLã®çµç«ãŠåŠçãè€éã«ãªã£ãŠããã®ã§)
>
> > 2010/1/25 awaawa <p1us3inus2...@gmail.com>:
ä»é±æ«ãªãªãŒã¹(ïŒæïŒæ¥!?)ãèããŠããŸãã
ãšããããããã©ãŒãã³ã¹æ€èšŒã¯åŸè¿œãã§ã
åäœãåé¡ãªããã°ããããªãšã
äœãæ°ä»ãããšããæ°ã«ãªããšããããã°èšã£ãŠäžããã
> ...
>
> ãã£ãšèªã â«
倧å€é
ããªããŸãããŒãæ€èšŒããŸãã!
(ãããŸãããã¡ãã£ãšå¿ãããŠãã§ããç¯å²å
ã§ã®ãå ±åã«ãªããŸããã)
> ãã£ãã·ã¥ãµã€ãºãå°ãããšã倧ãããšãã®
> äž¡æ¹ã®ãã¹ããé¡ãããŸãã
> (SQLã®çµç«ãŠåŠçãè€éã«ãªã£ãŠããã®ã§)
ã°ã£ã¡ãOKã§ããã
SequenceCacheHandlerTest.test_filterNextValSql_half_Oracle()
ãã¡ãã£ãšæ¹è¯ããŠã
String actual = handler.filterNextValSql(i, 1, sql);
String actual = handler.filterNextValSql(i, 2, sql); â»iã¯2ã®åæ°
ã§10,000ãŸã§ç¢ºèªããŸããã(splitListã§ã®ãµã€ãºãã§ãã¯)
ããšãå®éã«ããŒã¿ç»é²ãããã¿ãŒã³ã§ããã€ã確èªããŸããã
3ã45ã89ã99ã100ã101ã199ã200ã201ã900ã901ã999ã1000ã1001
ããã©ãŒãã³ã¹æ€èšŒã§ããã以åã®ãã£ãã·ã¥ãªããšæ¯ã¹ããšã
ã€ã³ã¯ãªã¡ã³ãæ¹åŒããããæ¹åŒãè€åã©ã®ãã¿ãŒã³ãçŽååã®æéã§å®è¡ã§ããŸããã
åæ
ã»Oracle10gXE
ã»ãã°ã¬ãã«ã¯INFO
ã»ç»é²ããŒã¿ã®äœæããbatchInsertãçµãããŸã§ã®æéãèšæž¬
1. ãã£ãã·ã¥ãªãããããããã-
2. ã€ã³ã¯ãªã¡ã³ãæ¹åŒãããããdfcache(10,000)ãincrementSize=10,000
3. ãããæ¹åŒãããããããããdfcache(10,000)
4. ã€ã³ã¯ãªã¡ã³ãã»ãããæ¹åŒãdfcache(10,000)ãincrementSize=100
10,000ä»¶
å¹³å 1åç® 2åç® 3åç®
1. 7.306 7.744 7.048 7.126
2. 2.849 2.941 2.973 2.634
3. 3.281 3.517 3.141 3.186
4. 2.707 2.985 2.581 2.555
20,000ä»¶
å¹³å 1åç® 2åç® 3åç®
1. 12.790 12.240 13.036 13.095
2. 5.489 6.194 5.147 5.127
3. 6.175 6.148 6.204 6.173
4. 4.992 4.947 5.055 4.975
30,000ä»¶
å¹³å 1åç® 2åç® 3åç®
1. 19.893 18.892 21.736 19.051
2. 7.916 7.490 8.866 7.392
3. 9.660 9.497 10.505 8.978
4. 8.177 8.506 8.736 7.288
> ä»é±æ«ãªãªãŒã¹(ïŒæïŒæ¥!?)ãèããŠããŸãã
ããããŠããã ãããšãããããã§ãã
> ...
>
> ãã£ãšèªã â«
ããããããããšããŒ
ãŸãã¯åäœç¢ºèªããããšãã
åé¡ç¡ãããã§ããã
ãããŠããã©ãŒãã³ã¹æ€èšŒã
ã€ã³ã¯ãªã¡ã³ãæ¹åŒãäžçªéãã®ã¯ãã¡ããã ãã©ã
ãããæ¹åŒã§ããã£ãããšããæ¹åãããããã§ããã
(ããã£ãïŒäŸ¡å€ãããïŒ)
ãããã§DBFluteãè¯ãæ©èœã身ã«ã€ãããã
ããããšãã仿¥ã®å€ãªãªãŒã¹ããŸãã
2010/1/31 awaawa <p1us3i...@gmail.com>:
> --
> ãã®ã¡ãŒã«ã¯ Google ã°ã«ãŒãã®ã°ã«ãŒããDBFluteãŠãŒã¶ã®éããã®ç»é²è
ã«éãããŠããŸãã
> ãã®ã°ã«ãŒãã«æçš¿ããã«ã¯ãdbf...@googlegroups.com ã«ã¡ãŒã«ãéä¿¡ããŠãã ããã
ãªãªãŒã¹ããŸããã
ãããŠãããã°ã«ãŠè²Žéãªã³ã¡ã³ãé ããŸããã
http://d.hatena.ne.jp/jflute/20100119#c1265014834
ãªããšOracleã®ã·ãŒã±ã³ã¹ãã£ãã·ã¥ã®ãããæ¹åŒã§ã
äžè¡ã®SQLã§å®çŸã§ããŠããŸãããã§ãã
ç¡è«ããã®SQLèªäœã®ããã©ãŒãã³ã¹ãOracle9iã§ã®åäœã
ããšãåºæ¬çã«ã¯awaawaããã®ãããžã§ã¯ãã§æ¡çšããã
ãã®æç¹ã§ã®ããæ¹ã(æçµä»æ§ãšããŠ)åªå
ããã€ãããªã®ã§ã
(ãŸãããŸã ã¢ããã°ã¬ãŒãããæéçäœè£ãããªããããã©)
è²ã
ããã®ã§ããã«åæ ãšããããã«ã¯ãããŸãããã
å°ãªããšãä»£æ¿ææ®µããããšããã®ã¯å®å¿ã§ãã
DB2ã¯ããã£ã±ãããŸãã§ããªã...
(æ
å ±æäŸããŠããã£ããããæ¹åŒã®SQL)
ã·ãŒã±ã³ã¹ãååŸããå Žåã¯ããã "ã·ãŒã±ã³ã¹ãååŸãã"
ããšä»¥å€ã¯äœãã§ããªãæããªã®ããªã...
ãŸãããããã«ããããã¡ãã詊è¡é¯èª€ãå¿
èŠã§ããã
On 1æ31æ¥, åå4:55, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> ããããããããšããŒ
>
> ãŸãã¯åäœç¢ºèªããããšãã
> åé¡ç¡ãããã§ããã
>
> ãããŠããã©ãŒãã³ã¹æ€èšŒã
> ã€ã³ã¯ãªã¡ã³ãæ¹åŒãäžçªéãã®ã¯ãã¡ããã ãã©ã
> ãããæ¹åŒã§ããã£ãããšããæ¹åãããããã§ããã
> (ããã£ãïŒäŸ¡å€ãããïŒ)
>
> ãããã§DBFluteãè¯ãæ©èœã身ã«ã€ãããã
> ããããšãã仿¥ã®å€ãªãªãŒã¹ããŸãã
>
> 2010/1/31 awaawa <p1us3inus2...@gmail.com>:
> ...
>
> ãã£ãšèªã â«
DB2ã¯ã§ããããã
> ...
>
> ãã£ãšèªã â«
> [Blogã®ã³ã¡ã³ãããã®æç²]
> awaawaãã
> ä»åã¯ãªãªãŒã¹ãè¿ãã®ã§
åèãŸã§ã«ãã©ã®ãããã®ææãŸã§ãªãã¢ããã°ã¬ãŒãã§ãããã§ããïŒïŒïŒ
A. ããç· ãåã
B. ä»é±äžãŸã§ãªããªããšã
C. æ¥é±ããããŸã§ãªããªããšã
D. 忥é±ããããŸã§ãªããªããšã
E. äºæäžæ¯ãŸã§ãªããªããšã
Oracleéšåã«å€ããã¯ãªããã©ãSequenceCacheHandlerã¯
DB2ã®é¢é£ã§ä¿®æ£ãããŠããã®ã§(ãªãã¡ã¯ã¿ãªã³ã°ãå°ã)ã
ãªããšãªããã®ä¿®æ£åŸã®ãã€ã§å®çžŸã«ããããªããšæã£ãã...
> ...
>
> ãã£ãšèªã â«
ãããŸãããŒãAã§ãããã
0.9.4ã®ãããã£ãŠåœ¢ã§ä»æ¥ãææ¥ã«ãæäŸããã ããã®ã§ããã°åã蟌ããããã§ããã
(ã§ããã°ãruntimeã®ä¿®æ£ã®ã¿ã§ã)
ãã³ããããŸãã!
ã§ã以äžãconnect byãã®æ€èšŒçµæã§ãã
1. ãã£ãã·ã¥ãªãããããããã-
2. ã€ã³ã¯ãªã¡ã³ãæ¹åŒãããããdfcache(10,000)ãincrementSize=10,000
3. ãããæ¹åŒãããããããããdfcache(10,000)
4. ã€ã³ã¯ãªã¡ã³ãã»ãããæ¹åŒãdfcache(10,000)ãincrementSize=100
â»1ã2ã¯ååãšæ¡ä»¶ã¯åãã§ãããåèå€ãšããŠå ¥ããŠãããŸããååãšç°å¢ã¯åãã§ãã
è¥å¹²union allãcross joinã®æ¹ãæ©ãããã£ãŠçµæã§ããã(æ€èšŒæ°ãå°ãªãã®ã§ãŸã ãªããšããããŸããã)
20,000ä»¶ãš30,000ä»¶ãã»ãŒåãé床ãããã¯è¥å¹²æ©ãã®ã¯ã¯ãšãªãã£ãã·ã¥ã®åœ±é¿ãããã®ããšã
æéãããšãã«ããå°ãæ£ç¢ºã«æ€èšŒããŠã¿ãŸãã
10,000ä»¶
å¹³å 1åç® 2åç® 3åç®
1. 7.327 7.403 7.467 7.111
2. 2.826 2.920 2.893 2.666
3. 4.100 4.142 4.407 3.750
4. 2.784 2.841 2.947 2.565
20,000ä»¶
å¹³å 1åç® 2åç® 3åç®
1. 13.225 13.282 13.392 13.001
2. 5.168 5.580 4.956 4.968
3. 6.862 7.598 6.438 6.550
4. 4.907 4.989 4.824 4.907
30,000ä»¶
å¹³å 1åç® 2åç® 3åç®
1. 19.059 19.063 18.815 19.298
2. 7.407 7.439 7.322 7.460
3. 9.757 9.595 10.353 9.322
4. 7.743 7.158 8.183 7.889
> ...
>
> read more â«
äºè§£ã§ãã
ã©ã³ã¿ã€ã ã ãã®0.9.6.4.1ãšã仿¥åºããããšãæã£ããã©ã
ãŸããã£ã±ããäžéå端ãªã®ã§ãããŠãããŸããã
Oracleã®éšåã¯äœãå€ãã£ãŠãªãããExampleã§è±ªè¯ãªãã¹ãã¯ãããã
æ€èšŒããããšãããããŸãã
ç¹ã«éè²ç¡ãå©çšå¯èœãšããããšã§
çµè«ä»ããŠããããªãšã¯æããŸãã
Oracleã«é¢ããŠã¯ã0.9.6.4ã®æç¹ã®ããæ¹
ã§ããããšã«ããŸããã
#
# ãšã«ãããã«ãDB2ã§ãã§ããããã«ãªã£ãã®ã¯å€§ãã
#
2010/2/2 awaawa <p1us3i...@gmail.com>:
columnExceptListã®ã¹ã¬ããã£ãŠããã ã£ãããªïŒïŒïŒ
ãŸãããããã«ããã
awaawaããã
é€å€ã§ããã«ã©ã ãPK/FK/UQ以å€ã®ãã®ã«éå®ããäºå®ã§ãã
ãã£ã¡ã§å®éã«äœ¿ã£ãŠããã§ããã£ãïŒ
ãããã仿§ã§åé¡ã¯ãªãã§ãããïŒïŒïŒ
(ã€ãŸããPK/FK/UQã®ã«ã©ã ã¯èªåçæå¿
é ãšããããšã§)
ããšãReplaceSchemaã§ã¡ã€ã³ã¹ããŒããFKåç
§ãã
ãµãã¹ããŒããdropã§ããããã«ããŸãã(0.9.6.5)ã
ã¹ããŒãéã§FKé¢ä¿ã«ãããšçæ¹ã®ReplaceSchemaã
倱æããŠããŸãã®ã§ãããããå Žåã«å¯Ÿå¿ããŸããã
(additionalDropMapListãå©çšããŸã)
ç¹ã«ãã®æ©èœã欲ãããšããããŸãïŒ
(ããããã°ãå³ãªãªãŒã¹ãã¡ãã£ãŠãããããªãš)
On 2æ2æ¥, åå8:53, kubo <dbfl...@gmail.com> wrote:
> jfluteã§ãã
>
> äºè§£ã§ãã
> ã©ã³ã¿ã€ã ã ãã®0.9.6.4.1ãšã仿¥åºããããšãæã£ããã©ã
> ãŸããã£ã±ããäžéå端ãªã®ã§ãããŠãããŸããã
> Oracleã®éšåã¯äœãå€ãã£ãŠãªãããExampleã§è±ªè¯ãªãã¹ãã¯ãããã
>
> æ€èšŒããããšãããããŸãã
> ç¹ã«éè²ç¡ãå©çšå¯èœãšããããšã§
> çµè«ä»ããŠããããªãšã¯æããŸãã
> Oracleã«é¢ããŠã¯ã0.9.6.4ã®æç¹ã®ããæ¹
> ã§ããããšã«ããŸããã
>
> #
> # ãšã«ãããã«ãDB2ã§ãã§ããããã«ãªã£ãã®ã¯å€§ãã
> #
>
> 2010/2/2 awaawa <p1us3inus2...@gmail.com>:
> columnExceptListã®ã¹ã¬ããã£ãŠããã ã£ãããªïŒïŒïŒ
ããã§ãã
é€å€ã§ããã«ã©ã ã¯PK/FK/UQ以å€ã®ãã®ã§åé¡ãªããšæããŸãã
â»ããããããUQé€å€ããããšãããããã§ããã
ãè€æ°UQã§äžéšé€å€ãšãèãããšãããªããªãã®ã§ã
> ReplaceSchemaã§ã¡ã€ã³ã¹ããŒããFKåç
§ãã
> ãµãã¹ããŒããdropã§ããããã«ããŸãã(0.9.6.5)ã
ããŒãReplaceSchemaããã«ãã¯ãŒã¢ããã§ãã!
ä»ã¯ãã®ãã¿ãŒã³ã¯ãªãã®ã§å€§äžå€«ã§ãã
ãé
æ
®ããããšãããããŸã!
> ...
>
> ãã£ãšèªã â«- åŒçšããã¹ãã衚瀺ããªã -
>
> - åŒçšããã¹ãã衚瀺 -
awaawaãããããããšãã
ãšãããã倧äžå€«ãããšããããšã§ã
0.9.6.4ã§é 匵ã£ãŠäžããã
#
# dbflute-oracle-exampleã§ã
# additionalDropMapListãå®éã«äœ¿ã£ãŠãã®ã§ã
# æ°ã®åãããšãã«ã§ãåèãŸã§èŠãŠã¿ãŠäžããã
# (nextexampledbåŽã§exampledbãdropããŠããŸã)
#
2010/2/3 awaawa <p1us3i...@gmail.com>: