我有一个SQL表:
TestResult
- id
- test_result
- test_name
每次测试都会创建一个会话,在 TestResult 表中创建大约1000条记录,我发现现在我有很多 test_name 重复。
如何避免复制?
我认为创建两个表是正确的:
TestName
- name (Primary Key)
TestResult
- id (Primary Key)
- result
- name_id (Foreign Key)
但是如何自动将例如'test_1'替换为1(来自TestName表的id)?
我应该在1000个测试周期的每个步骤中执行此操作吗? 1.如果存在,尝试获取name_id 2.如果不存在则创建它 3.使用以前的id。将记录添加到TestResult。
我认为这太慢而且太愚蠢了。这里的好习惯是什么?或者让它成为现实也许是一个好主意?
答案 0 :(得分:0)
设置表但保留test_name列和test_id(新FK),然后:
UPDATE T SET
T.name_id = tn.name
FROM TestResult T
INNER JOIN TestName TN on
T.test_name = TN.name