从Bill表中添加了一个FK到我的客户表,无法将数据添加到fk列

时间:2012-08-19 05:47:12

标签: sql oracle10g foreign-keys

Foreign Key Not Populating with Primary Key Values

我在网站上做了很多搜索,但是我为编写数据库代码相对较新。我读了几个像上面列出的那样的线程,但我无法利用其中的信息来解决我的问题。我有两个表,客户和账单。客户表如下:

SQL> SELECT * FROM CUSTOMER;

CUST_ID                   NAME            BILL_NUM
-------------------- ------------------- ----------
432                  MICHAEL MAYS  
433                  VILMA PACULAN    
434                  RUBY PUKE   
435                  ROWENA JOHNSON    
436                  MAGIC JOHNSON    
437                  DARTH VADER    
438                  OBI WAN   
439                  YODA    
440                  STEWIE GRIFFIN
441                  EVIL MONKEY    
442                  HARRY POTTER

比尔表:

SQL> SELECT * FROM BILL
  2  ;

  BILL_NUM      TOTAL
---------- ----------
      1000        5.5
      1001        7.4
      1002       12.5
      1003      14.56
      1004      25.36
      1005      66.66
      1006      99.97
      1007      56.67
      1008       5.23
      1009      87.25
      1010      36.17

正如您在customer表中看到的那样,FK Bill_Num为空。我需要知道如何将数据插入到列中,以匹配PK数据?我正在使用oracle 10g SQLPlus。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果查看当前的数据设置,则没有可以链接这两个表的公共列(隐式或显式)。因此,无法自动链接表格。

您需要表单中的事务表: CUST_ID | Bill_NUM(多对多)

或者正如Graeme所说,现在把CUST_ID放在Bill表上,你的多对一关系将与预期相反。

http://en.wikipedia.org/wiki/Database_normalization - 开始规范化数据库的好地方