Copyright © Mike's Blog
Design by Dzignine
2013年12月5日 星期四

SQLite 小記

在我們要INSERT資料時,如果資料不存在時就新增,反之,存在的話就覆寫過去,這時候就常會使用到REPLACE INTO這個指令如下:

INSERT OR REPLACE INTO Employee (id, name, role)
  VALUES (1, 'Mike', 'CEO');


不過這時候有其他欄位(ex: depart)時,就會自動帶入null。
假設我們要保留 depart 這個欄位原始值,就可以改成這樣:

INSERT OR REPLACE INTO Employee (id, name, role, depart)
  VALUES (1, 'John Foo', 'CEO',
    (SELECT depart FROM Employee WHERE id = 1)
  );


上面SQL語法:當id=1存在時,depart則會保留舊的,其他的值會被更新。
或是另一種寫法:

INSERT OR REPLACE INTO Employee (id, name, role, depart)
  VALUES (1, 'John Foo', 'CEO',
    COALESCE((SELECT depart FROM Employee WHERE id = 1), "Cleaning")
  );


跟前一個差別在於當id存在時,depart會保留舊的,而當id不存在時,depart則為是"Cleaning"。

2013年12月3日 星期二

架設Git Server (一)

最近在開發上使用到git,覺得非常好用,真的很適合我這種健忘的人。因為常常寫過的code,最後都忘記當初在寫什麼,有了git可以非常方便你去復習你的程式,還有最重要的就是可以版本控制。不用再靠usb或是dropbox複製來複製去,而且這樣很容易會弄錯。

一般只要申請的github帳號就可以把東西丟上去,隨時隨地都可以抓下來寫,不過github如果是免費的話,code是要公開的,因此才想說自己來架個git server。(感覺直接付費比較快...)
既然剛好有現成的server,於是就好好來運用一下,步驟大概如下:
  • 安裝git

在CentOS上直接用yum安裝即可:

$ yum intsall git

建立git帳號,方便管理權限:

$ useradd git
$ passwd git

設定目錄權限

$ su git
$ chmod -R 755 /home/git

建立一個Repository

$ mkdir /home/git/test
$ cd test
$ git init --bare

  • Client端測試

建立一個git
$mkdir test
$cd test
$git init
$git add .
$git commit -m 'first commit'
$git remote add origin ssh://git@你的ip或網址:你的port/home/git/test.git
$git push origin master

簡單幾個步驟就完成了!
最後補上安全機制,讓git賬號只能執行git指令:
$ sudo vim /etc/passwd 
將
git:x:508:508::/home/git:/bin/sh
改成
git:x:508:508::/home/git:/usr/bin/git-shell


參考連結:
http://blog.sina.com.cn/s/blog_591e8adf0100vlzs.html
http://blog.longwin.com.tw/2011/03/build-git-env-share-over-ssh-2011/