LENDIEN聯電 冷暖 清淨 除溼 移動式空調 9000BTU任天堂-Switch-NS-公司貨主機-豪華全配組LG樂金 WIFI遠控雙眼小精靈掃地清潔機器人變頻版
顯示具有 oracle 標籤的文章。 顯示所有文章
顯示具有 oracle 標籤的文章。 顯示所有文章

2009年8月5日 星期三

MySQL複製一筆資料

這個說起來很簡單,真的做起來其實也很簡單,但因為不常用,應該有不少人用起來很生疏吧!

語法其實很簡單
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年3月3日 星期二

mysql,oracle取得當前時間

在新增或修改資料的時候,常常會需要記錄操作時間,雖然可以用程式指令先產生時間再放進去,但就是覺得這樣有點笨……

在oracle,當要抓資料庫主機目前時間,要用sysdate;在mysql,則是用NOW()
修改資料庫欄位值時,就用欄位=NOW()欄位=sysdate就行了。值得注意的是,在oracle使用sysdate後,會產生系統格式的時間,通常需要用to_char去把撈出來的資料先做轉換,看到的日期格式才會是符合需求的;在mysql,則可不用這麼麻煩,now()產生的時間格式即為Y-M-D H:m:s的格式,用起來相當方便。