繁体   English   中英

如何插入NULL long值?

[英]How do I insert a NULL long value?

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

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

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

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

请改用String


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

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

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

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

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

首先,为什么要将电话号码存储为数字字段? 在大多数情况下,你可能还想存储像“+41(52)123 455”这样的东西,你可以使用数值数据类型来保存,但是没问题。

然后插入空值:怎么样:

INSERT INTO mytable (phone) VALUES (NULL);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM