[SQL ] Insert当下select出当笔资料

楼主: fire1017 (鸟鸣啾啾)   2017-04-22 19:18:35
数据库名称:Oracle
数据库版本:11g
内容/问题描述:
目前遇到一个问题,我想在Insert一笔资料时,
同时select出自己的PK,好让自己能再透过程式补上BLOB资料,
(会这么麻烦是因为我的BLOB是一张QRCode,有独特性)
但问题在我的资料PK是透过sequence产生的,
我无法预先知道下一笔PK会是长怎样(可能中间出状况就跳号),
导致我再进行select时无法用insert进的PK来作为条件,
我目前想到的作法是,在table增加一个时间字段纪录Insert当下的时间,
再透过where最新时间的方式来取回原来那笔资料,
但想想觉得有点不够俐落,而且不确定是否掺杂其他风险在
想请问版上的高手们是否有更好的解决办法?
先谢谢各位解答!
作者: aaa7513231 (浑沌与秩序)   2017-04-22 22:28:00
我以前PK都是自己生一个UUID来新增,就不需要回传PK了
作者: iFEELing (ing)   2017-04-23 01:37:00
那你程式就自己取Sequence拿到号码再塞资料进去??
作者: aaa7513231 (浑沌与秩序)   2017-04-25 17:24:00
uuid只是产生一个不会重复的代码当pk而已
作者: paul0407 (红尘过客号,或以 guest )   2017-06-13 18:27:00
之前有个类似需求我是用Select ... for update来解取得最大值+1后,就是您Insert的PK值

Links booklink

Contact Us: admin [ a t ] ucptt.com