小蛙在上一篇文章中介紹 SQLite Expert Personal 簡單的使用方式,這篇文章小蛙要說明怎麼設定每一筆資料都有一個可以自動新增的id,相當於Oracle的SEQUENCE,MySQL的AUTO_INCREMENT,設定及運作方式跟MySQL的差不多,只是小蛙一開始要設定的時候還是小卡了一下。

這裡小蛙用實際的例子來說明,原本在設計這個資料表的時候,目的是在儲存台灣的郵遞區號,ex.台北市,大安區,Da’an Dist.,,這個資料表裡面小蛙也設定了id屬性,目的是讓比鄉鎮區以下的例如:村、里…等,可以用id來辨別是在哪個鄉鎮區。小蛙在設計到一半的時候,發現SQLite Expert Personal裡面預覽資料的時候有個欄位叫做RecNo,小蛙以為這套GUI會產生自動遞增的欄位方便使用者操作,但當小蛙透過程式存取SQLite的時候卻又得不到RecNo這個欄位的值才恍然大悟,原來這套軟體產生的RecNo只是方便使用者在GUI操作的時候辨識資料筆數。下圖是小蛙被騙的RecNo。

在已經建立好資料,卻又要新增not null的auto_increment欄位的方法也不難,只是做個小動作騙騙這套管理工具。在Design下的Fields頁面中選擇下方的Add,將要新增的id欄位補上,注意Type一定要用INTEGER。

如果上一步直接把Not null打勾的話一定會出現這個錯誤,因為已經把資料建好,而新增欄位如果是Not null,就違反了規則(新增出來的欄位裡面沒有值,當然就違反了)。

只要把Not null的勾勾先取消,點選OK後,繼續切換到Indexes頁面,點選下方Add後,在要自動遞增的欄位上點兩下(會跑到右邊),之後會發現上方有三個勾,視需求勾選(Primary: PK,主要可以識別的的 Key,Unique: 唯一值,不可以重複,Autoincrement: 每一筆紀錄都會自動增加1)。確定後,點選下方的Apply就不會在出現上面的錯誤囉!

最後因為我們新增了Autoincrement這個屬性,因此原本新增的id欄位就不再是null,接著再回到Fields編輯剛剛的id欄位,把id欄位的Not null勾選就完成囉!

最後可以把經常查詢或是需要查詢的欄位建立Index,如此一來可以加快我們搜尋資料的速度。以下這段內容節錄自SQL語法教學。該網站舉了一個翻書的例子,如果我們在書裡有索引(可以看成是目錄),就可以很快的找到我們要查找的資料;倘若有一本書沒有任何目錄,那麼就必須逐字去尋找。

索引 (Index) 可以幫助我們從表格中快速地找到需要的資料。

從資料庫表格中尋找資料也是同樣的原理。如果一個表格沒有索引的話,資料庫系統就需要將整個表格的資料讀出 (這個過程叫做’table scan’)。若有適當的索引存在,資料庫系統就可以先由這個索引去找出需要的資料是在表格的什麼地方,然後直接去那些地方抓資料。這樣子速度就快多了。

相關文章

SQLite 圖形化操作軟體 – SQLite Expert Personal (1)

小蛙今天要介紹一套圖形化的SQLite管理軟體,目前像Android, iOS … 等手持式裝置內部都支援使用SQLite,不外乎是因為它方便、小、速度快,SQLite不
2011-12-17 00:46:18
hans

18

如 Javadoc 的程式文件產生器 Doxygen 簡易教學

小蛙之前寫 Java 居多,Java 裡面有一個 Javadoc 可以把開發者依照固定好的格式填寫的程式註解整理成一份完整的 HTML 文件,讓其他開發者可以很方便的查詢 API。例如:
2013-03-19 17:14:25
hans

8

Java + Excel = JXL

講到試算表,大家最熟悉的應該就是Microsoft Office Excel了吧!但其實大部分的人都只會基本的Excel操作及運
2011-12-19 22:12:31
hans

1

BloggerAds停權

小蛙昨天收到一封BloggerAds寄來的信,沒想到沒收到Google AdSense的服務暫停通知,卻先收到了BloggerAds,小蛙心想好吧
2011-12-21 13:58:48
hans

1

XnView – 批次調整圖片大小

2011-12-21 19:35:08
hans

1

Ubuntu – 調整系統時間與時區設定

(2012-03-07 更新)小蛙在這篇文章會介紹怎麼在Ubuntu環境下設定時區以及透過網路更新時間。小蛙最近在試著透過crontab設定讓vps可以定期備份資料庫及WordPress,shell script不熟悉讓小蛙卡了好久...到
2011-12-22 14:16:03
hans

1

Ubuntu – 基本指令備忘(持續更新)

(2012-10-05 更新) 小蛙在使用Linux的時候一路走來始終如一,始終如一的是跌跌撞撞,一些很基本的指令紀錄一下,遇到什麼就記什麼,下次要查找也會比較方便。雖然有-h, --help, 或是man可以查找,不過總還是覺得麻煩 ..
2011-12-22 15:12:32
hans

1

使用FancyBox燈箱效果呈現圖片,無法顯示圖片

小蛙的最近一個工作中,要讓使用者點了縮圖之後可以透過燈箱效果開啟大圖並且上下頁切換,之前小蛙試過很多種燈箱效果套件,舉凡是colorbox, fancybox, lightbox, thinbox, thickbox, greybox ..
2011-12-28 12:15:05
hans

1




 回覆

你可以使用以下語法 HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

(required)

(required)

   
© 2012 蛙齋 Suffusion theme by Sayontan Sinha