SQL SERVE 2000的一对一关系的数据表到底如何操作?(10分)

  • 主题发起人 主题发起人 sjm
  • 开始时间 开始时间
S

sjm

Unregistered / Unconfirmed
GUEST, unregistred user!
员工信息表的结构为:员工编号、员工姓名, 员工工资表的结构为:员工编号、工资标准。两个表的‘员工编号’均设置为主键,且为一对一关系,主表为‘员工信息表’,子表为‘员工工资表’。两表的记录数应保持一致。由于两表已设定为联动方式,我用Insert into 语句为头一个表添加记录时会报错,如何解决?
添加记录时,应保证两表同时添加编号相同的记录,而删除时只需删除头一个表的记录,由于一对一级联的关系第二表的同编号记录会自动删除,同样,修改头一个表的编号时也应会自动更新第二表的相关记录的编号,可就是由于设定了两表的级联关系,添加时往第一表插入记录时由于此时第二表尚无相同编号的记录而导致系统报错,如之奈何?
 
主键 不能为空,要是插入空记录就会报错,你可能是抽空记录了
 
不会是主外表两个搞反了吧
 
既然有了外键约束
当然不可以为空
你可以看看数据结构方面的书
就是那个外键的问题
其实有的时候设立外键是很麻烦的
可以考虑不设
 
是这样,我原先开发时总是设置好表的主键就可以了,外键不去管它,然后在代码中自己处理主表、子表的级联关系。但现在如果把主表与子表相关联起来就反而不会弄了。比如上例,如果想往主表里添加一条记录,系统马上就报错,说子表里无相对应的子表键值而失败。可有很多教科书都强调要在建库时同时把主、子表的关联建立好,真不知该怎么弄了!
 
可能楼主建立两表的关系时把“主键表”和“外键表”选颠倒了。
“员工信息表”为主键表,“员工工资表”为外键表。
建立关系的好处是由SQL Server系统自动检查主/子表的对应关系。
主键表的数据必需先输入,外键表的数据可以后输入。
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
852
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部