我有一个表t1
,有些行在所有列中都有重复,除了id
。
t1
是id
AUTO_INCREMENT 并且有 1MIL 行。
t2
是一个没有数据的新表,id
不需要 AUTO_INCREMENT,因为我可能会为此创建一个新列。
问:我创建后t2
,如何从所有列中的不同值复制t1
到其中,这样就没有重复的行t2
t1
t2
我在亚马逊RDS
ENGINE=InnoDB
t1 - 这就是我所拥有的
+---+-----+-----+------+-------+
|id |fname|lname|mytext|morevar|
|---|-----|-----|------|-------|
| 1 | joe | min | abc | 123 |
| 2 | joe | min | abc | 123 |
| 3 | mar | kam | def | 789 |
| 4 | kel | smi | ghi | 456 |
+------------------------------+
t2 - 这就是我想要结束的
+---+-----+-----+------+-------+
|id |fname|lname|mytext|morevar|
|---|-----|-----|------|-------|
| 1 | joe | min | abc | 123 |
| 3 | mar | kam | def | 789 |
| 4 | kel | smi | ghi | 456 |
+------------------------------+
这是我的尝试,但得到了:Error Code: 1136. Column count doesn't match value count at row 1
INSERT INTO t2 (id,fname,lname,mytext,morevar)
SELECT DISTINCT st.mytext
FROM t1 st
WHERE st.id>0
AND st.id<=1000