【问题标题】:"SQLite.SQLiteException: duplicate column name" Are column names not case sensitive?“SQLite.SQLiteException:列名重复”列名不区分大小写吗?
【发布时间】:2018-04-24 13:48:08
【问题描述】:

我在我的一个项目中使用 SQLLite.Net-PCL 3.1.1,在 SQLite 中创建表时遇到了“SQLite.SQLiteException:重复列名” 问题。

原因是因为我的父类(我不拥有它)有一个名为 "ID" 的列。我的界面有一个名为 "Id" 的列,注意大小写。

我通过将以下代码行添加到派生类中解决了这个问题:

[Ignore]
public new long ID { get; set; }

[Ignore] 属性阻止将“ID”列添加到我的 SQLite 数据库中,这解决了我的问题。

我的问题是:SQLite 中的列名在设计上区分大小写还是这是一个错误?

【问题讨论】:

  • 我认为列名不区分大小写,但即使它们区分大小写,使用相同的名称也会在 IMO 上引起麻烦。
  • 它们不区分大小写,除非您在引用中引用它们。所以select id from tableselect "ID" from table 是不一样的。可能与这里有关。 stackoverflow.com/a/19933159/2193107
  • SQL 语言是这样定义的。

标签: sqlite sqlite.net


【解决方案1】:

在 SQLite 中,所有 SQL 标识符 are case-insensitive(即使被引用)。

【讨论】:

    猜你喜欢
    • 2017-01-31
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2014-09-06
    • 2014-03-18
    • 2014-01-19
    相关资源
    最近更新 更多