sqlite - 如何让 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 程序中,当使用 dataadapter.fillschema 方法时,datadapter 不会提取默认值,所以我有一个子例程通过 SELECT 查询从 SQLite 中提取默认值,并且 .NET 为数据列添加了默认值. 我没有意识到它正在返回包含字符串文字的单引号(即'John Smith'周围的引号)。
推荐阅读
- php - 使用 PHP 脚本下载时出现网络故障
- android - 在 Android 和 Node.js 之间传输大文件
- java - 我如何检查颜色是否匹配?(匹配颜色的记忆游戏)
- html - 除元素换行外如何添加样式
- powershell - 在自定义 VSTS PowerShell 脚本任务中使用特殊字符
- java - 我不断收到扫描仪的 in.nextXXXX 的 NoSuchElement 异常
- java - 为什么我收到 UnsatisfiedLinkError
- visual-studio - 将平面文件导入 SSIS 会出现问题,因为分隔符不一致
- ios - 密码字段未显示在 localAuthenticationContext
- javascript - 如何在单独的 JS 文件而不是 HTML Script Header 标记中编写按钮单击脚本