如果是ORACLE,外键字段的值必须是主表中的字段值中的一个,或者为空。
“The relational model permits the value of foreign keys either to match the referenced primary or unique key value, or be null. ”
                       -《ORACLE8i Concepts》第28章 Data Integrity

解决方案 »

  1.   

    我的是MS SQL 7。再请教:如何将字段的值设为NULL?它与=‘’不一样吧
      

  2.   

    为什么要把字段设为null?
    它代表unknown.当然与“”不一样了。
      

  3.   

    是因为我某些时候需要,因为它受外键限制,我想插入一个主表中没有而又能不受约束可以插入的值,我就想到了NULL
      

  4.   

    理论上不可能。
    主表的外键是从表的主键
    试问你能在从表中增加一条主键为null的记录吗
      

  5.   

    楼上的老兄:“主表的外键是从表的主键
    试问你能在从表中增加一条主键为null的记录吗 ??”
    那在从表中出现外键重复又怎么解释?试外你能在从表中增加一条主键重复的记录吗?
      

  6.   

    从表中的外键字段只要不是主键,就可以为NULL,表示不引用主表中的任何值
      

  7.   

    回答你这个问题:“再请教:如何将字段的值设为NULL?它与=‘’不一样吧 ”:
    update tablename set field=null where ...
      

  8.   

    “是因为我某些时候需要,因为它受外键限制,我想插入一个主表中没有而又能不受约束可以插入的值,我就想到了NULL ”你这个想法和完整性的概念就有冲突,当然不能实现。