请问: 外键的内容,怎么insert和update?

levellee 2008-01-06 11:10:27
感谢各位费时看我的帖子,
请帮忙一下小弟!


我有如下四个表 :
days product records EMP

days--------------以下是表的列

ID productID recordID peopleID plan


主键 外键(参照product表) 外键(参照record表) 外键(参照EMP表)



product-----------以下是表的列
productID product_name
主键


records----------以下是表的列
recordID record_name
主键


EMP--------------以下是表的列
peopleID name dept sex tel
主键

我用asp读数据库的时候用视图,这个读取没问题.

当我要insert 或者update的时候插资料到表里:
days表:
ID //这个自动累加没问题
productID //用户在前台提交的是product_name
recordID //用户在前台提交的是record_name
peopleID //用户在前台提交的是员工的name
plan //这个没问题!

请问这样的话语法该怎么写?

麻烦高手不舍赐教.感谢!
...全文
338 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2008-01-09
  • 打赏
  • 举报
回复
faint
levellee 2008-01-09
  • 打赏
  • 举报
回复
怎么结帖?
JL99000 2008-01-07
  • 打赏
  • 举报
回复
这个首先应该用用户在页面提交的名字来将记录插入到相应的各自表中
这样每个表中都有一个该名字对应的记录
再通过这个名字来获取ID
最后将所有获取的ID插入到days表中
欧了
levellee 2008-01-06
  • 打赏
  • 举报
回复
insert into days
select
productID = (select productID from product where product_name = @pName)
,recordID = (select recordID from record where record_name = @rName)
,peopleID = (select peopleID from EMP where name = @ename)
,plan = @plan



服务器: 消息 213,级别 16,状态 4,行 1
插入错误: 列名或所提供值的数目与表定义不匹配。

是怎么回事?
levellee 2008-01-06
  • 打赏
  • 举报
回复
谢谢
tim_spac
tim_spac 2008-01-06
  • 打赏
  • 举报
回复

insert into days
select
productID = (select productID from product where product_name = @pName)
,recordID = (select recordID from record where record_name = @rName)
,peopleID = (select peopleID from EMP where name = @ename)
,plan = @plan
levellee 2008-01-06
  • 打赏
  • 举报
回复
提交的名字只需要能够找到唯一的ID,就没有问题啊;如果是下拉框可以给value赋值ID就可以了


这个行不通,
因为员工有3000人,

不可能下拉框来3000个选项.

这样录入数据的同事不扁死我拉...
levellee 2008-01-06
  • 打赏
  • 举报
回复
这样啊?
我试试.
有其他语法可以实现吗?
hy_lihuan 2008-01-06
  • 打赏
  • 举报
回复
提交的名字只需要能够找到唯一的ID,就没有问题啊;如果是下拉框可以给value赋值ID就可以了
levellee 2008-01-06
  • 打赏
  • 举报
回复
哦.可以了.thanks
pt1314917 2008-01-06
  • 打赏
  • 举报
回复

错误已经提示的很明显了。列名数目不匹配,改为如下。
insert into days(productid,recordid,propleid,plan)
select
productID = (select productID from product where product_name = @pName)
,recordID = (select recordID from record where record_name = @rName)
,peopleID = (select peopleID from EMP where name = @ename)
,plan = @plan

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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