处理动态(用户提供的)列名称

时间:2015-07-18 07:06:24

标签: sql sqlite

在编写管理数据的应用程序时,允许最终用户创建或删除最佳表示为列的数据类通常很有用。例如,我正在编写一个字典构建应用程序;用户可能会决定要添加一个"替代拼写"字段或数据的东西,可以很容易地表示为另一列。

通常,我只是根据用户所谓的名称命名列(" alternate_spelling"在这种情况下);但是,用户定义的字符串没有被明确地清理为数据库标识符,这让我很烦恼。由于列名不能像值一样绑定,我试图弄清楚如何清理列名。

所以我的问题是:我该怎么办?只能引用一些东西我能逃脱吗?有很多问题询问如何在SQL中绑定列名,许多响应说一个人永远不需要,但从不解释处理变量列的正确方法。我特意在Python工作,但我认为这个问题比较笼统。

1 个答案:

答案 0 :(得分:0)

它取消了您正在使用的数据库......

根据PostgreSQL: " SQL标识符和关键字必须以字母(a-z,但也包含带变音符号和非拉丁字母的字母)或下划线(_)开头。标识符或关键字中的后续字符可以是字母,下划线,数字(0-9)或美元符号($)。请注意,根据SQL标准的字母,标识符中不允许使用美元符号,因此它们的使用可能会降低应用程序的可移植性#34;

(请记住:名称允许的最大长度)