2012-07-14 6 views
0

인벤토리 목록으로 데이터를 범주별로 구분하십시오. 시작할 때 하나의 테이블이 두 개의 테이블로 분할되어야했습니다. 그렇지 않으면 oldTable에서 주어진 행의 열과 관련이 없습니다. 데이터베이스에 두 개의 새 테이블을 만들었습니다. 하나는 범주 용이고 다른 하나는 데이터/항목 용입니다. 이제 oldTable 기존 데이터를 사용하여 newTable 데이터/항목 테이블을 채우려고하므로 SQL을 배울 수 있으므로 수동으로 수행 할 필요가 없습니다. 카테고리 테이블은 필자가 수동으로 채웠다. 달리 수행하는 방법을 볼 수 없었기 때문이다.두 테이블을 함께 연결 또는 매핑

오래된 테이블이 있습니다

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

새로운 테이블이 : 나는 Categories.cat_id 테이블 열에서 값의 cat_id 일치 하나를 요구하는 새로운있는 DataItem 테이블을 강제로 어떻게

Categories (
cat_id, 
    name 
) 

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

을 ? 값이 범위를 벗어나 추가되면 오류를 줄 수 있습니까? 나는 이것이 테이블을 맵핑하거나 연결하여 관계 테이블을 만들 수 있다고 생각한다. tableName 데이터를 알파벳순으로 한 번에 하나의 열씩 dataItem 테이블에 복사하려면 이름과 우선 순위를 가져 와서 item_id 값을 자동 증가시키지 않습니까?

+2

sql server, mysql, oracle, sqlite 등과 같은 플랫폼을 사용하고 있습니까? – Hogan

+0

이전 표의 샘플 데이터와 새 dataItem 표의 결과를 제공 할 수 있습니까? –

답변

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

관련 문제