Sql 简单数据库。外键插入
我有两个类别A和B,包括以下列: A类Sql 简单数据库。外键插入,sql,database,Sql,Database,我有两个类别A和B,包括以下列: A类 _id | name _id | tableA_id |name B类 _id | name _id | tableA_id |name 项目列表 _id | name | tableB_id tableA\u id和tableB\u id是外键,\u id列是主键 B类是a的一个子类 name列是唯一的(每个表中只有一个类别) 我想插入5个项目,每个项目的类别为A和B 第1项: name: item1 category A: Movie Cat
_id | name
_id | tableA_id |name
B类
_id | name
_id | tableA_id |name
项目列表
_id | name | tableB_id
tableA\u id
和tableB\u id
是外键,\u id列是主键
B类是a的一个子类
name
列是唯一的(每个表中只有一个类别)
我想插入5个项目,每个项目的类别为A和B
第1项:
name: item1
category A: Movie
Category B: Action
name: item2
category A: Movie
Category B: Drama
name: item3
category A: Movie
Category B: Comedy
name: item4
category A: Music
Category B: Pop
name: item5
category A: Music
Category B: Rock
第2项:
name: item1
category A: Movie
Category B: Action
name: item2
category A: Movie
Category B: Drama
name: item3
category A: Movie
Category B: Comedy
name: item4
category A: Music
Category B: Pop
name: item5
category A: Music
Category B: Rock
第3项:
name: item1
category A: Movie
Category B: Action
name: item2
category A: Movie
Category B: Drama
name: item3
category A: Movie
Category B: Comedy
name: item4
category A: Music
Category B: Pop
name: item5
category A: Music
Category B: Rock
第4项:
name: item1
category A: Movie
Category B: Action
name: item2
category A: Movie
Category B: Drama
name: item3
category A: Movie
Category B: Comedy
name: item4
category A: Music
Category B: Pop
name: item5
category A: Music
Category B: Rock
第5项:
name: item1
category A: Movie
Category B: Action
name: item2
category A: Movie
Category B: Drama
name: item3
category A: Movie
Category B: Comedy
name: item4
category A: Music
Category B: Pop
name: item5
category A: Music
Category B: Rock
如何在不查询外键对应主键的ID的情况下填充外键
还是我缺少数据库设计的一个重要部分?如果您的数据库设计“正确”,为了防止损坏,您将无法插入没有父项的子记录 为了获得父密钥,无需重新查询,请阅读以下精彩文章:
如果您的数据库设计“正确”,为了防止损坏,您将无法插入没有父项的子记录 为了获得父密钥,无需重新查询,请阅读以下精彩文章: 如何在不查询外键对应主键的ID的情况下填充外键 如果我正确理解了您的问题,那么在将新记录插入表
列表
时,如果不查询Rock的ID(即不查询),就无法填充外键
select _id, tableA_id
from Category_B
where name = 'Rock'
如何在不查询外键对应主键的ID的情况下填充外键
如果我正确理解了您的问题,那么在将新记录插入表列表
时,如果不查询Rock的ID(即不查询),就无法填充外键
select _id, tableA_id
from Category_B
where name = 'Rock'
首先填充类别A和类别B
然后插入到项目列表中,知道类别ID。首先填充类别A和类别B
然后插入到项目列表中,知道类别ID。您的意思是,要插入项目,我必须:1-插入类别A,2-查询A的ID并插入类别B,然后查询类别B的ID并插入项目?我认为它的操作太多,无法插入单个项目。还有别的办法吗?是的。我猜ID是由RDBMS生成的序列,否则您可能已经知道了值。我还建议您在类别名称上添加一个唯一索引,并在插入时使用触发器将其转换为全大写或全小写。否则你会得到一个“电影”类别,一个“电影”类别,一个“电影”类别,一个“电影”类别等等。你的意思是,要插入一个项目,我必须:1-插入类别a,2-查询a的_id并插入类别B,然后查询类别B的_id并插入项目?我认为它的操作太多,无法插入单个项目。还有别的办法吗?是的。我猜ID是由RDBMS生成的序列,否则您可能已经知道了值。我还建议您在类别名称上添加一个唯一索引,并在插入时使用触发器将其转换为全大写或全小写。否则,您将得到一个“电影”类别、一个“电影”类别、一个“电影”类别、一个“电影”类别等等。