【发布时间】:2020-05-09 07:59:45
【问题描述】:
我正在尝试为 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(以及我熟悉的所有其他 SQL 数据库)默认情况下不将所有字符串数据放在引号中。
-
请通过填写您的表格(通过显示
insert ...的一些行)升级到minimal reproducible example,显示带有描述结果的查询(select ...)以及它产生的输出。理想情况下,填充几行会引发您描述的问题的所有变体。或者,您可能需要创建多个表才能这样做... (meta.stackoverflow.com/questions/333952/…) -
考虑在代码中使用换行符,只是为了方便阅读。
标签: sqlite