如何获取 SQLite 列默认值以不包含字符串引号



我正在尝试为 SQLite 中的某些列输入默认值。 如果我使用单引号将字符串括起来,它将包含引号。 不包含引号的唯一方法是不使用引号,但是如果字符串有任何特殊字符或空格,这将不起作用。

我尝试使用的示例语句的形式如下:

CREATE TABLE tablename (id INTEGER NOT NULL, [columnname] TEXT DEFAULT DefValue, PRIMARY KEY (id))

如果 DefValue 是 John,那么它工作正常,当在表中生成默认值时,它没有括起来的引号或括号。 如果我使用"John","John","John],"John Smith"或特殊字符,如"F!@#4%",则默认值会用引号/括号生成。 如果我不使用括起来的括号/引号,并且按预期有一个特殊字符,则查询将不起作用。

有没有办法添加带有空格或特殊字符的默认值并且不会产生括起来的引号?

我想出了问题。 它不是SQLite。我将尝试简要解释。 我正在使用SQLite作为.NET程序的本地数据库。 我最初认为它与 .NET 程序无关,因为我认为我正在我最近开始尝试的 SQLite 编辑器中重现该问题。 发布后我意识到它没有在SQLite编辑器中重现。 很晚了,我又累又沮丧。 主要问题是在 .NET 程序中,datadapter 在使用 dataadapter.fillschema 方法时不会拉取默认值,因此我让一个子例程通过 SELECT 查询从 SQLite 拉取默认值,.NET 为数据列添加了默认值。 我没有意识到它返回的是包含字符串文字的单引号(即"John Smith"周围的引号(。 在将默认值分配给 .NET 中的数据列之前,我让子例程删除了引号。

最新更新