H2 表列在双引号中不区分大小写

2024-01-21

我正在开发一个工具,它将数据导入到动态生成的模式中。因此,我几乎无法控制表或列名称的外观。我最近遇到了在表中创建两列名称相同但大小写不同的问题。这个问题可以通过这个最简单的 DDL 操作来演示:

CREATE TABLE "a" (
    "c1" integer,
    "C1" integer
)

这对我来说在程序和 h2 控制台中都失败了:

重复的列名称“C1”; SQL语句:创建表“a”(“c1” 整数,“C1”整数)

例如,这在 PostgreSQL 中工作得很好,我认为它应该工作,因为 SQL 规范在值用双引号引起来时要求区分大小写。

我目前正在使用内存 h2 数据库。

EDIT:它耗尽的原因是连接是通过选项建立的DATABASE_TO_UPPER=false导致了这种行为


在 H2 中,名称不区分大小写。

H2 docs http://www.h2database.com/html/grammar.html#name

...但...

带引号的名称区分大小写,并且可以包含空格。

引用名称的 H2 文档 http://www.h2database.com/html/grammar.html#quoted_name

我刚刚在 H2 的本地实例中运行了这个确切的示例,并且运行良好。

create table p ("c1" integer, "C1" integer);
insert into p values (1,2);
select * from p;

我认为你的 SQL 在 H2 中运行之前已经被更改了。在 SQL 运行之前,所有内容都可能已被大写。

根据您的更新,连接是使用选项 DATABASE_TO_UPPER=false 建立的,这导致了此行为

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H2 表列在双引号中不区分大小写 的相关文章

  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • 如何识别拼写不同的相似单词

    我想从数据库中过滤掉重复的客户名称 一位客户可能有多个同名但拼写差异不大的系统条目 这是一个示例 名为 Brook 的客户可能有 3 个系统条目 有了这个变化 布鲁克 贝尔塔 布鲁克 贝尔塔 比鲁克 贝尔塔 假设我们将此名称放入一个数据库列
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 当您在 SQL Server 中创建新登录名时,它默认选择 db_owner

    我在 SQL Server 2008 R2 中创建新的 SQL 用户时遇到一些问题 当我使用 SQL Server Management Studio 时 它会检查db owner默认情况下的角色成员资格 我只想创建一个具有只读访问权限的新
  • 删除连接中不存在的记录

    想象两个表 A 和 B A B 1 2 2 3 6 5 4 7 9 11 13 23 9 现在我想从 A 中删除 B 中不存在的记录 例如从 A 中删除 1 6 和 4 我最初的想法是您可以 否定 联接的结果 DELETE FROM A W
  • Big Query - 将数组/json 对象转置为列

    这个问题是这两个问题的延续 Bigquery 将数组转置为列 https stackoverflow com q 64346504 7463780 大查询 将特定字段转置为列 https stackoverflow com q 643983
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • PostgreSQL 位图堆扫描索引非常慢,但仅索引扫描很快

    我创建了一个包含 43kk 行的表 并用值 1 200 填充它们 因此 表中每个数字大约为 220k create table foo id integer primary key val bigint insert into foo se
  • 使用 ActiveRecord 和 Yii2 记录实际的 SQL 查询?

    我正在这样做 students Student find gt all return this gt render process array students gt students 然后在视图中 foreach students as

随机推荐

  • 将 df1 列 1 与 df2 中的所有列进行比较,返回 df2 的索引

    我是熊猫新手 所以很可能忽略了一些东西 但我一直在搜索 但还没有发现任何有用的东西 我想做的就是这个 我有 2 个数据框 df1只有 1 列和未知的行数 df2每个索引的行数和列数也未知 Example df1 0 1117454 1 11
  • Vue js 加载器覆盖全局 css

    我想用 vue loader 组件中定义的 css 覆盖全局 css 目前我在index html中有这个 div div Other Code G
  • 如何进行滚动求和,每一行需要包含前几行的总和

    我有桌子 访问 当 order number 为空时 我需要获取按 user id 分组的行以及 Visit duration seconds 的总和 例如 对于用户 2875636 我将得到 61 151 33 13 每行应包含其前面的行
  • 程序启动时(asm、linux)默认的寄存器状态是什么?

    当程序启动时 Linux ELF 可执行文件 其中是否有零eax ebx等等或者还有什么吗 我没有进行任何调用或使用外部库 在我的机器上 寄存器被清零 但是在编写 asm 程序时 我可以在新进程中依赖这种行为吗 这完全取决于每个平台的 AB
  • 为外部承包商清理 Mercurial 存储库

    我有一个包含一些敏感文件和目录的活动项目 我想聘请外部承包商来做一些简单的 UI 工作 但是 我不希望承包商有权访问某些目录和文件 我的项目在 Bitbucket 上的 Mercurial 中 清理项目并让他有权提交更改的最佳方法是什么 我
  • ** 中的错误不是 NgModule

    我有这个 NgModule NgModule imports CommonModule exports SP21LoadingBar declarations SP21LoadingBar export class SP21LoadingB
  • 将 SQL Azure 数据库导出到 blob - Start-AzureSqlDatabaseExport:无法将 AzureStorageContainer 转换为 AzureStorageContainer

    我在用这段代码找到了 https stackoverflow com questions 36261258 start azuresqldatabaseexport object reference not set to an instan
  • 我如何知道Linux系统调用是否是线程安全的?

    Linux 中的一些函数通过 r 标记 线程安全 例如 gmtime r 但大多数系统调用都没有被标记 也没有在联机帮助页中提及 所以我的问题是 我如何知道Linux系统调用是否是线程安全的 谢谢你 我认为你的意思是 库函数 由于对线程的内
  • 将第一个函数中创建的数组传递给第二个函数

    这个问题是从我的上一个问题开始的 主要是因为我想避免使用全局变量 因为它的局限性 请参阅此处链接的答案 如何调用由不同函数创建的数组 https stackoverflow com questions 41436347 how do i c
  • 如何可靠地恢复 MySQL blob

    多年来我一直使用以下命令备份 MySQL 数据库 mysqldump myDatabaseName u root gt myBackupFile sql 备份似乎工作正常 然后我想将其中一个备份恢复到另一个命名的数据库 所以我这样做了 my
  • Qt5 在 OSX 上安装 -qt-xcb

    我在 OSX 上安装 Qt5 时遇到问题 The Mac OSX 的 Qt 要求 http qt project org doc qt 5 0 qtdoc requirements mac html完成 Xcode 和命令行已安装 然后我按
  • 使用 ctypes 将 python 字符串传递给 Fortran 子例程

    我正在尝试使用 ctypes 将参数传递给共享库中的 Fortran 子例程 现在这是我的简单 fortran 代码 MODULE test module INCLUDES SUBROUTINE fstr test file or exte
  • 用 C++ 构建多线程工作队列(消费者/生产者)

    我有以下场景 我有一个线程应该填充 带有整数对的容器 本质上是任务描述 我有一个很大的 应从此容器中获取元素并执行操作的工作线程数 8 16 一些工作 我认为这个问题可以通过阻塞队列轻松解决 例如在项目删除时 线程同步对队列的访问 如果没有
  • WPF DataTemplate 下的排序 ItemsControl

    我在 DataTemplate 下使用 ItemsControl 我想对 ItemsControl 进行排序ic使用 id 列
  • Unity3D C# 检查事件是否为空

    例如 DelegateHandler是我发送事件的地方 public class DelegateHandler MonoBehaviour public delegate void OnButtonClickDelegate public
  • 方法签名中的Java“参数”?

    在C 中 如果希望方法具有不确定数量的参数 可以将方法签名中的最后一个参数设为params这样方法参数看起来像一个数组 但允许使用该方法的每个人根据调用者的需要传递任意数量的该类型的参数 我相当确定 Java 支持类似的行为 但我不知道如何
  • 查找子字符串,带有一些附加条件

    我得到了一个如下所示的字符串 1011010100 我的任务是找到一个子字符串的长度 其中空值的数量始终 10110101 gt 8 我知道复杂度应该是 O n 或 O n log n 因为长度最多可达 10 6 有任何想法吗 The O
  • 在 Android 上,我可以注册一个回调来告诉我蓝牙是否打开或关闭吗?

    我需要知道我的应用程序内部蓝牙是否打开或关闭 或者蓝牙是否打开或关闭 例如从操作系统设置下拉菜单 我想我可以在活动中做到这一点onResume 但事实证明 当 Android 操作系统的设置 下拉菜单 通过用手指从屏幕顶部边缘下拉来访问的菜
  • 用于计算类数的部分语法

    我需要计算正确的 C 源文件中的类数量 我写了以下语法 grammar CSharpClassGrammar options language CSharp2 parser namespace CSharpClassGrammar Gene
  • H2 表列在双引号中不区分大小写

    我正在开发一个工具 它将数据导入到动态生成的模式中 因此 我几乎无法控制表或列名称的外观 我最近遇到了在表中创建两列名称相同但大小写不同的问题 这个问题可以通过这个最简单的 DDL 操作来演示 CREATE TABLE a c1 integ