默认情况下,Firebird(和大多数其他数据库)中的对象名称不区分大小写,但有一个局限性:如果创建或引用不带引号的表(或其他对象)名称,则实际上将其视为大写形式。仅当对象名称用引号引起来时,它才区分大小写并按原样引用。此行为在SQL标准中指定(请参见SQL:2011
Foundation, 5.2
这意味着
customer,
Customer,
CUSTOMER,
CuStOmEr和
"CUSTOMER"所有参考同一个表,即:
CUSTOMER。
创建表
"Customer"(注意引号)时,该表以的形式存储在元数据中,
Customer但只能将其引用为
"Customer",因为未引用的对象名称不区分大小写,
Customer因此仍将使用引用
CUSTOMER。
您尝试使用显示表格
show table Customer;
注意错误消息中CUSTOMER的大写使用:
该数据库中没有表 CUSTOMER
showtablesshows的输出中有一个表
Customer(而不是
CUSTOMER),因此您需要将其引用为
"Customer"。您需要使用:
show table "Customer";



