2016-01-21 102 views
2

我有一張簡單的桌子。我試圖把一個默認值的文本列。這裏是表查詢:如何將默認值設置爲Sqlite中的TEXT列?

"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT '0', book_name TEXT NOT NULL);" 

它創建表,但是當我嘗試插入數據時發生問題。我只是試圖給書名book_name,因爲我預計book_id將有一個默認值0的列。但它不會,它會添加空值,所以行不會被插入。我也嘗試過這個查詢:

"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT \'0\', book_name TEXT NOT NULL);"  

但問題依然如此。我已經搜索了堆棧溢出,並得到了一些答案,但他們是老的,現在不適合我。所以在如何將默認值設置爲sqlite中的TEXT列時發生了一些變化。感謝提前:)

編輯
這裏是插入語句:

database.insert("book", null, cv);  

這裏CVContentValues的對象,它包含了列BOOK_NAME只值。

+0

你的INSERT語句是什麼? – mmuzahid

+0

您是否在SQLiteOpenHelper的oncreate方法中創建表? –

+0

請提供如何在表格中插入數據的代碼 –

回答

10

您可以在創建表格時指定列的默認值。 (它不會出現,好像你可以使用ALTER 聲明添加一個默認的,所以你必須重新創建表。)

CREATE TABLE your_table_name 
(MainContactName TEXT NOT NULL DEFAULT '') 

對於

CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT,book TEXT DEFAULT "abc"); 

現在看到的是,默認值設置爲 「ABC」

支票S. qllite documentation

+0

如果我創建沒有NOT NULL的列,那麼它不會將空字符串作爲默認值或'abc'。它看起來是空的,我已經看到大多數以前的答案,但他們都沒有工作 –

+0

你想默認設置列值爲'something'?對嗎?那麼這個工程@AbirHasan –

+0

你嘗試過嗎?導致它不工作。 @Amit –