Что в Derby эквивалентно СОЗДАТЬ ИЛИ ЗАМЕНИТЬ?

Кто-нибудь знает эквивалент Дерби для следующего?

CREATE OR REPLACE VIEW myView AS SELECT ...

Мой поиск в Интернете не нашел ничего ясного. Интересно, может, мне придется сделать что-то похожее на то, что я сделал для MSSQL:

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'myView')
    DROP VIEW [dbo].[myView];

CREATE VIEW [dbo].[myView] AS SELECT ...

В этом случае я предполагаю, что мне придется пройти по этому пути.


person james.bunt    schedule 27.07.2011    source источник
comment
См. Здесь: old.nabble.com/Create-table- если-не-существует - td22130625.html   -  person ypercubeᵀᴹ    schedule 28.07.2011
comment
и это: stackoverflow.com/questions/5866154/   -  person ypercubeᵀᴹ    schedule 28.07.2011


Ответы (1)


Его не существует.

Просто попробуйте выполнить SELECT, и если он не удастся поймать его с помощью кода исключения:

   try {
      // Try to perform your query on the view.
   } catch( SQLException e ) {
      // Compare exception code. If equals to X0Y32 then create the view.
   }
person Erre Efe    schedule 28.07.2011
comment
К сожалению, я не в ситуации, когда я могу попробовать / поймать использование кода Java. Мне действительно нужно иметь возможность делать это исключительно в SQL. Можно ли сделать что-то подобное в SQL? - person james.bunt; 28.07.2011
comment
Нет. Этот нестандартный синтаксис является расширением языка и не поддерживается Apache Derby. Я думаю, тебе стоит попробовать второй подход, извини. - person Erre Efe; 28.07.2011