這個說起來很簡單,真的做起來其實也很簡單,但因為不常用,應該有不少人用起來很生疏吧!
語法其實很簡單
INSERT INTO tablename [VALUES (fields...)]
SELECT fields FROM tablename [WHERE ...]
我想這個在使用上最容易遇到的問題,就是主索引跟唯一值不能重複的問題了。
在最單純的狀況下,要把tableA的一筆資料複製,只要下
INSERT INTO tableA
SELECT * FROM tableA WHERE id=3
就行了。不過呢,如果遇到鍵值不能重複的話,就要在設定VALUES裡設定欄位,當然相對的在後面的SELECT裡,也要指定一樣的欄位。
這樣如果某個表欄位很多,又要避掉索引值的話,其實光用想的我就累了……應該有方法可以處理掉欄位的問題,但那是個懶方法,卻不一定是個好方法,在目前還沒遇到那麼棘手的問題前,還是勤勞的慢慢key欄位名稱好了~
這個方式也是可以用在Oracle跟MSSQL裡的,其他的資料庫因為手邊沒得測,就不知曉了。
2009年8月5日 星期三
MySQL複製一筆資料
訂閱:
張貼留言 (Atom)
經測試,我的語法才可以
回覆刪除複製一份資料錄,跳開SN(不重覆值)
insert into Basic(Name,CP_Name ,Department ,Titles ,Cp_Tel ,Cp_Phone ,PostalCode ,Addr ,CP_Email ,trade ,mbcount ,Join_time ,wave)
select Name,CP_Name ,Department ,Titles ,Cp_Tel ,Cp_Phone ,PostalCode ,Addr ,CP_Email ,trade ,mbcount ,Join_time ,wave from Basic where sn='13'
作者:阿宏(mitnick)