我試圖將tableA
中的行復制到空白tableB
。
將tableA複製到tableB如果A中的列不重複
tableA
有一列mytext
並且行具有該列中的重複項。
問題 如何從一個複製到B那裏有來自mytext
沒有重複的行?換句話說,如果在mytext
中有兩個或更多行具有相同的值,請保留具有最小ID號的一個並複製到tableB
。
最初我試圖刪除重複,但一直得到一個錯誤Error Code: 1205. Lock wait timeout exceeded from this sql command:
DELETE n1
FROM tableA n1, tableA n2
WHERE n1.id > n2.id
AND n1.mytext = n2.mytext
我對amazons
RDS
+---+-----+-----+------+-------+
|id |fname|lname|mytext|morevar|
|---|-----|-----|------|-------|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+------------------------------+
CREATE TABLE `tableB` (
`id` int(11) NOT NULL,
`fname` varchar(45) DEFAULT NULL,
`lname` varchar(45) DEFAULT NULL,
`mytext` mediumtext,
`morevar` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
這個沒有工作,也沒有抓到重複和簡單將tableA中的所有值複製到tableB中
INSERT INTO tableB (`id`,`fname`,`lname`,`mytext`,`morevar`)
SELECT DISTINCT tableA.id,tableA.fname,tableA.lname,tableA.mytext,tableA.morevar
FROM tableA
你是什麼意思「這沒有用」? 「INSERT」聲明的結果是什麼?此外,目前還不清楚你想如何處理重複。如果兩行在'mytext'字段中具有相同的條目,那麼您想要將哪一行插入'tableB'中? – Keith
更新了問題 –
是否選擇語句工作,如果你沒有插入運行它? –