2012-03-23 62 views
1

HyperSQL在創建表時將所有列名轉換爲大寫,右圖。
當使用未分隔標識符選擇一些標識符不區分大小寫,
SELECT myColumn FROM myTable;
SELECT mYcOlUmN FROM myTable;
SELECT mycolumn FROM myTable;
將正常工作。HyperSQL區分大小寫的區分標識符

但是,使用分隔標識符時,標識符區分大小寫。所以
SELECT "MYCOLUMN" FROM myTable;
工作,但

SELECT "myColumn" FROM myTable;
SELECT "mYcOlUmN" FROM myTable;
SELECT "mycolumn" FROM myTable;
不會!

所有 科技部我的查詢使用小寫字母分隔標識符(不要問爲什麼)。
HyperSQL提供了一種使用不區分大小寫的分隔標識符的方法,或者將不帶引號的標識符作爲小寫字母來處理?

回答

2

當您不使用帶引號的標識符時,標準SQL不區分大小寫。當您使用它們時,引用的對象將被視爲區分大小寫,而未加引號的名稱將視爲大寫。

您可以將所有列重命名爲其小寫版本。

ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN RENAME TO "mycolumn" 

您可以通過在公共模式中選擇所有的表+列名和執行每個列的重命名聲明編程這樣做(在Java中)。

+0

Ups ..我誤導了你!我的大部分查詢都使用小寫引號標識符!在你的例子中,所有進一步的select查詢都應該使用帶引號的標識符,因爲非引號的查詢將被視爲大寫! – 2012-03-24 16:08:33

+0

使用必須一致並遵守規則。沒有其他辦法。 – fredt 2012-03-25 16:19:01