2016-02-28 30 views
-1

數據從一個錶轉移到另一個有兩個表像以下 -我如何通過increasinf主鍵

COLOR 

    colorId name description 
    1000 White White 
    1001 Blue Blue 

ProductFeature 
productFeatureId productFeatureTypeId description 
20001   COLOR    White 
20002   COLOR    Blue 

在顏色表我幾乎400行。現在我正在嘗試編寫一個sql查詢,通過告訴productFeatureTypeId =「COLOR」並且每次將productFeatureId(主鍵)遞增,將這些行轉移到ProductFeature表中。

+0

添加AUTO_INCREMENT到id列 – Jens

+0

不幸的是(或也許幸運的)顏色是邊緣的情況下。顏色本質上是唯一可識別的。 – Strawberry

回答

0

這種結構創建產品表,

CREATE TABLE ProductFeature (
    productFeatureId MEDIUMINT NOT NULL AUTO_INCREMENT, 
    productFeatureTypeId CHAR(30) NOT NULL, 
    description CHAR(30) NOT NULL, 
    PRIMARY KEY (productFeatureId) 
) 

編輯:如果表已經存在,改變該列的數據類型,你的情況變化首先刪除productFeatureid場存在的全部價值和改變數據類型作爲AUTO_INCREMENT

ALTER TABLE t1 MODIFY <column_name> <type> ; 
+0

表已經創建..我試圖將所有顏色從COLOR轉移到PRODUCT_FEATURE –

0

假設productFeatureIdAUTO_INCREMENT,則可以使用insert into ... select聲明。

insert into ProductFeature (productFeatureTypeId, description) 
    select 'COLOR', name from Color; 
+0

其實我正在尋找一個存儲過程..我MySql不會自動增加主鍵字段.. –