如何插入NULL long值?

时间:2011-11-04 20:15:12

标签: java android sqlite

我有一个数据库组成一个包含多个字段的表,其中一个字段是存储为NUMERIC的电话号码。因为电话号码是10位数,所以在我的代码中我将变量捕获为LONG。

我的问题是,在insert语句中,如何传递NULL值?这有可能吗?我不能为LONG变量赋一个空值,所以我想知道如何去做这个......

3 个答案:

答案 0 :(得分:7)

  

因为电话号码是10位数,所以在我的代码中我将变量捕获为LONG。

糟糕的主意。电话号码可能看起来像一样,但它们不是。它们是字符串,恰好是 数字。但它们也可以包含+等符号。

改为使用String


更新:如果您需要使用数字类型,请确保使用Long代替long。资本化非常重要。顺便说一下,标准Java中没有LONG这样的类型。

答案 1 :(得分:2)

如果您迫切需要使用数字作为电话号码,为什么不将不存在的电话号码编码为0L或-1L?

编辑:顺便说一句,你说数据库仅限于数字格式。 java方面也一样吗?

long dbPhoneNumber = getTheLongFieldFromTheDatabase();
String internalPhoneNumberRepresentation = Long.toString(dbPhoneNumber);
doSomethingWithString();
dbPhoneNumber = internalPhoneNumberRepresentation == null ? 0L : internalPhoneNumberRepresentation;
storeLongFieldToDatabase(dbPhoneNumber);

或多或少应该做你需要的一切,对吗?

答案 2 :(得分:0)

首先,为什么要将电话号码存储为数字字段?在大多数情况下,您可能还想存储诸如“+41(52)123 455”之类的东西,您可以使用数值数据类型来保存它们,但是确定。

然后插入空值:怎么样:

INSERT INTO mytable (phone) VALUES (NULL);