2

外键未填充主键值

我在该网站上进行了很多搜索,但是对于为数据库编写代码我还是比较陌生。我阅读了一些类似上面列出的主题,但我无法利用其中的信息来解决我的问题。我有两个表,客户和计费。客户表如下:

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

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

4

1 回答 1

0

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

您需要以下形式的事务表:CUST_ID | Bill_NUM(多对多)

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

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

于 2013-04-03T15:09:55.247 回答