回答

收藏

SQL填充不同的数据和序列

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

我的问题如下:
; Q, A1 y. E$ Z# l0 a我需要根据租车实例中的信息填写汽车表。- t% v5 F+ p. M9 w: c, s% R
我需要创建一个主键 car_id但只针对租赁表中的不同车牌。
! P8 e; Q& f2 z! e5 G) K$ u# }我正在创建有序列的car_id。
我尝试了以下代码,但收到了错误的消息:
) h; S: z* p" V( b4 Z0 G" _--INSERT INTO cars c (c.plate,c.car_id)SELECT DISTINCT cr.plate,car_id_seq.nextvalFROM cars_rentals cr;虽然这将起作用(没有不同的车牌):7 w* Z3 I8 u3 B3 G. Y* }- L
--INSERT INTO cars c (c.plate,c.car_id)SELECT cr.plate,car_id_seq.nextvalFROM cars_rentals cr;(第一行有注释,所以我可以立即看到输出值). T$ Y( q& ^3 e& @. p
所以!谁知道我怎么做?A)使用上述代码获取上述代码DISTINCT或B)找到获取序列的方法MAXVALUE作为牌照的DISTINCT
! V  N8 D% ]. m7 o- x$ wCOUNT(因此我可以执行两个插入语句)) E6 ]' h6 _1 z: P  n8 i/ \
提前致谢!杰克( {- V5 R. ^  p
                                                                ; L' @/ K$ d+ a. _- c' d
    解决方案:                                                               
9 W! Y4 b# x, l1 Y                                                                错误是:6 w- ~) f# P' [
ORA-02287:此处不允许使用序列号. j& E+ Y' P$ S
这将解决它:
- n# I2 |8 n+ {+ mSELECT cr.plate,car_id_seq.nextvalFROM (SELECT DISTINCT plate FROM cars_rentals) cr
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则