【发布时间】:2013-09-27 04:51:07
【问题描述】:
我有一个这样的 Oracle 数据结构:
俱乐部
Id
Name
一个俱乐部可以有很多支球队:
团队
Id
Name
ClubId
一个团队可以有很多玩家:
玩家
Id
Name
TeamId
如何插入包含有球员的球队的俱乐部?如果只是一个有球队的俱乐部,我可以这样做:
Insert all
into Clubs (Id, Name) Values (ClubIdSequence.nextval,'Manchester United')
into Teams (Name, ClubId) Values ('A-Team',ClubIdSequence.currval)
into Teams (Name, ClubId) Values ('B-Team',ClubIdSequence.currval)
Select * from dual
但是我该如何插入播放器呢?
这不起作用:
Insert all
into Clubs (Id, Name) Values (ClubIdSequence.nextval,'Manchester United')
into Teams (Id,Name, ClubId) Values (TeamIdSequence.nextval,'A-Team',ClubIdSequence.currval)
into Players (Name,Teamid) Values ('Michael Laudrup',TeamIdSequence.currval
into Teams (Id,Name, ClubId) Values (TeamIdSequence.nextval,'B-Team',ClubIdSequence.currval)
into Players (Name,Teamid) Values ('Brian Laudrup',TeamIdSequence.currval)
Select * from dual
因为
An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level
【问题讨论】:
-
对不起,如果这听起来很愚蠢,但是查询不起作用是因为您错过了第 4 行和第 6 行的 ')' 吗?
-
不,不是这样,Vaibhav - 但感谢您指出:)
-
错误是什么?我怀疑这与序列有关。
-
谢谢弗洛林 - 当然我应该添加错误消息。
-
您还可以在表定义的同时添加约束.. 它似乎有一些约束违规。添加约束(如果有)(特别是唯一约束)
标签: sql oracle sql-insert