۞ create table statement

۞ column-def

۞ type-name

۞ column-constraint

۞ table-constraint

۞ foreign-key-clause

  1. table 名稱不可用 "sqlite_" 開頭,這是 SQLite 保留的 table 名稱。
  2. 欄位的 "UNIQUE" 限制條件會建立唯一性的索引。所有的 "NULL" 值都試為不同值,不管是相對於其它 "NULL" 值,或是其它資料。這是為了偵測唯一性,因此 "NULL" 值會有很多的記錄(multiple entries)。
  3. 欄位的 "COLLATE" 限制條件會設定文字比對函數,內建的 "BINARY" 函數為預設值。
  4. 欄位的 "DEFAULT" 限制條件會設定欄位的預設值,當 "INSERT" 指令沒有給值時。後面所帶的資料可以為 NULL,字串,數字,運算式(包含在括弧內)。或是一些特定關鍵字 CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP。For CURRENT_TIME, the format is HH:MM:SS. For CURRENT_DATE, YYYY-MM-DD. The format for CURRENT_TIMESTAMP is "YYYY-MM-DD HH:MM:SS"。
  5. 欄位的 "PRIMARY KEY" 限制條件會建立一個 "UNIQUE" 索引,唯一的例外是 "INTEGER PRIMARY KEY" 欄位。根據標準的 SQL,"PRIMARY KEY" 必須不可為 "NULL" 值。不幸的,因為存在已久的編寫失誤,SQLite 允許 "NULL" 存在 "PRIMARY KEY" 欄位。由於這個 bug 被發現時,SQLite 已經被大量使用,為了之前的程式,SQLite 仍然允許 "NULL" 存在 "PRIMARY KEY" 欄位。然而,SQLite 會在以後修正這個問題,請不要把 "NULL" 加入 "PRIMARY KEY" 欄位。
  6. "TEMP" or "TEMPORARY" 關鍵字表示建立一個臨時 table,只會在同一個資料庫連線被使用,在連線結束會自動被刪除。任何建立在此 table 上的索引也是暫時性的。這些暫時性的 table 及索引都存在另一個檔案,跟原本資料庫檔案做區別。
  7. 建立暫時性 table 時,不可以加入資料庫名稱(database name),除了資料庫名稱為 "temp"。

原始參考網址:http://www.sqlite.org/lang_createtable.html

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()