[英]Omit schema in the DERBY Query
我創建了一個名為'movie_db'的數據庫,將默認架構設置為APP。 然后創建了一個名為“USERS”的示例表。
我與DB的連接如下:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="url" value="jdbc:derby://localhost:1527/movie_db"/>
<property name="username" value="root"/>
<property name="password" value="pass"/>
</bean>
現在我想編寫一些測試並嘗試執行以下查詢:
SELECT * FROM USERS;
我得到了什么:
java.sql.SQLSyntaxErrorException: Table/View 'USERS' does not exist.
當我准確指定我正在使用的架構時:
SELECT * FROM APP.USERS
一切正常。
如何在查詢中省略模式名稱?
更新:像Bryan說的那樣,我創建了一個名為默認模式的用戶,並使用此登錄進行授權。 這是在查詢中省略模式名稱的最簡單方法。 但是,如果我想使用多個模式,唯一的方法是明確設置模式。
基本上有兩種方法來控制默認架構名稱:
如果您尚未發出SET SCHEMA語句,則Derby將使用您的用戶名作為模式名稱。
因此,如果您以“APP”用戶身份登錄,並且未發出SET SCHEMA語句,則您的架構名稱將為APP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.