一对多 关联关系的两张表插入数据问题

bugmnbzxcqwe 2013-07-17 09:57:31
现在有两张表

A(分类): a_id(主键,自增), a_name
B(具体): b_id(主键,自增), a_id, b_name

测试数据如下:

A a_id a_name
1 蔬菜
2 水果

B b_id a_id b_name
1 1 白菜
2 1 黄瓜
3 1 茄子
4 2 苹果
5 2 西瓜
6 2 雪梨

主键要求用自增的,因为表里已经有数据存在的

最后在此先感谢下大家
...全文
666 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-07-17
  • 打赏
  • 举报
回复
引用 6 楼 bugmnbzxcqwe 的回复:
[quote=引用 4 楼 ACMAIN_CHM 的回复:] [quote=引用 3 楼 bugmnbzxcqwe 的回复:] [quote=引用 2 楼 ACMAIN_CHM 的回复:] insert into A values (null,'蔬菜'); set x:=last_insert_in(); insert into A values (null,x,'白菜');
那黄瓜的时候呢?蔬菜这条记录已经存在了啊...[/quote] 那插入 黄瓜 的时候,你是如何知道这是什么分类? 水果还是蔬菜? MYSQL或者说计算机是不具备这种智商的。[/quote] 因为现在有这样的数据 Excel里面的 蔬菜,白菜 蔬菜,黄瓜 蔬菜,茄子 水果,苹果 水果,西瓜 水果,雪梨 现在要把Excel的数据都导进去[/quote]
引用 7 楼 rucypli 的回复:
把蔬菜全部替换成1 水果替换成2 然后用load data导入就行了
先在EXCEL中把分类列复制到EXCEL SHEET中,去重,然后插入MYSQL表,然后再从MYSQL表中复制所有插入后的记录到EXCEL,这样就是分类的ID,然后在EXCEL中使用VLOOKUP得到分类的ID,再插入。
bugmnbzxcqwe 2013-07-17
  • 打赏
  • 举报
回复
引用 7 楼 rucypli 的回复:
把蔬菜全部替换成1 水果替换成2 然后用load data导入就行了
A表原本有数据呢,不能指定主键,所以必须用自增的.
rucypli 2013-07-17
  • 打赏
  • 举报
回复
把蔬菜全部替换成1 水果替换成2 然后用load data导入就行了
bugmnbzxcqwe 2013-07-17
  • 打赏
  • 举报
回复
引用 4 楼 ACMAIN_CHM 的回复:
[quote=引用 3 楼 bugmnbzxcqwe 的回复:] [quote=引用 2 楼 ACMAIN_CHM 的回复:] insert into A values (null,'蔬菜'); set x:=last_insert_in(); insert into A values (null,x,'白菜');
那黄瓜的时候呢?蔬菜这条记录已经存在了啊...[/quote] 那插入 黄瓜 的时候,你是如何知道这是什么分类? 水果还是蔬菜? MYSQL或者说计算机是不具备这种智商的。[/quote] 因为现在有这样的数据 Excel里面的 蔬菜,白菜 蔬菜,黄瓜 蔬菜,茄子 水果,苹果 水果,西瓜 水果,雪梨 现在要把Excel的数据都导进去
rucypli 2013-07-17
  • 打赏
  • 举报
回复
插入tableB的时候a_id必须人工指定
ACMAIN_CHM 2013-07-17
  • 打赏
  • 举报
回复
引用 3 楼 bugmnbzxcqwe 的回复:
[quote=引用 2 楼 ACMAIN_CHM 的回复:] insert into A values (null,'蔬菜'); set x:=last_insert_in(); insert into A values (null,x,'白菜');
那黄瓜的时候呢?蔬菜这条记录已经存在了啊...[/quote] 那插入 黄瓜 的时候,你是如何知道这是什么分类? 水果还是蔬菜? MYSQL或者说计算机是不具备这种智商的。
bugmnbzxcqwe 2013-07-17
  • 打赏
  • 举报
回复
引用 2 楼 ACMAIN_CHM 的回复:
insert into A values (null,'蔬菜'); set x:=last_insert_in(); insert into A values (null,x,'白菜');
那黄瓜的时候呢?蔬菜这条记录已经存在了啊...
ACMAIN_CHM 2013-07-17
  • 打赏
  • 举报
回复
insert into A values (null,'蔬菜'); set x:=last_insert_in(); insert into A values (null,x,'白菜');
bugmnbzxcqwe 2013-07-17
  • 打赏
  • 举报
回复
补充下,我的问题是如何写这些测试数据的insert语句

56,682

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧