将我的数据视为按类别分隔的库存清单。 当我开始时,我有一个表应该被分成两个表,否则在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
值?
答案 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