将两个表链接或映射到一起

时间:2012-07-14 20:48:05

标签: sql

将我的数据视为按类别分隔的库存清单。 当我开始时,我有一个表应该被分成两个表,否则在oldTable中,给定行中的列将是不相关的。我在我的数据库中创建了两个新表,一个用于类别,另一个用于数据/项目。现在我正在尝试使用oldTable现有数据来填充newTable数据/项表,这样我就可以学习SQL而不必手动执行它。我手动填写的类别表,因为我无法看到如何做到这一点。

旧桌子有:

tableName (
  id, 
  categoryA, 
  categoryB, 
  categoryC, 
  categoryD, 
  categoryE, 
  categoryF,  
  isPriorityA, 
  isPriorityB, 
  isPriorityC, 
  isPriorityD, 
  isPriorityE, 
  isPriorityE
)

新表有:

Categories (
 cat_id, 
  name
)

dataItem (
  item_id, 
  cat_id, 
  name, 
  priority, 
  description, 
  URL
)

如何强制新的dataItem表要求cat_id匹配Categories.cat_id表列中的某个值?如果在范围之外添加值,可能会出错?我相信这可能是映射或链接表,从而使它们成为关系表。 如何将tableName数据按字母顺序一次一列地复制到dataItem表中,使其具有名称,优先级并允许它自动递增item_id值?

1 个答案:

答案 0 :(得分:0)

听起来您想使用外键将dataItem.cat_id限制为Categories.cat_Id中的值。像这样:

ALTER TABLE dataItem ADD FOREIGN KEY (cat_id) REFERENCES Categories(cat_id);

确切的语法可能取决于您使用的数据库。有关外键的更多信息,请参阅:http://www.w3schools.com/sql/sql_foreignkey.asp