2016-06-11 3 views
0

Я пытаюсь переименовать имя столбца в ORIENTDB ВЕРСИИ 2.1.14 с SQLorientdb переименовать столбец с синтаксисом SQL

имея «USER» вершину как

+------+------+-----+ 
| cc | name | cod | 
+------+------+-----+ 
| 0001 | jhon | 123 | 
+------+------+-----+ 
| 0002 | paul | 567 | 
+------+------+-----+ 

я хочу, чтобы изменить

+------+------+----------+ 
| cc | name | tax_code | 
+------+------+----------+ 
| 0001 | jhon | 123 | 
+------+------+----------+ 
| 0002 | paul | 567 | 
+------+------+----------+ 

(имя столбца «трески» изменяется на «tax_code» и содержание не меняется)

http://orientdb.com/docs/2.0/orientdb.wiki/SQL.html Код ошибки sql, но не работает с именами столбцов.

Есть некоторая процедура в sql в orientdb для изменения имен столбцов? Или, по крайней мере, какая-либо эквивалентная команда «sp_RENAME»?

ответ

0

Попробуйте это:

alter property <class-name>.cod name tax_code 

Надеется, что это помогает

С уважением.

+0

я сделать: 'изменить свойство Имя user.cod tax_code' и orientdb говорит: ' com.orientechnologies.orient.core.exception.OCommandExecutionException: свойство 'user.cod' не exists' ** : (** – el3ctron

+0

это исключение появляется потому, что свойство user.cod больше не существует, и оно было заменено на tax_code. –

0

ALTER PROPERTY - это правильный способ сделать это, но есть некоторые исправления. Во-первых, когда вы переименовываете свойство, оно фактически не удаляет старое свойство, оно просто копирует значения в новое. Если вы имели следующий класс/данные, как вы говорите

CREATE CLASS USER; 
CREATE PROPERTY USER.cc Integer; 
CREATE PROPERTY USER.name String; 
CREATE PROPERTY USER.cod Integer; 

INSERT INTO USER SET cc=0001, name="john", cod=123; 
INSERT INTO USER SET cc=0002, name="paul", cod=567; 

Данные будут выглядеть следующим образом:

+------+------+-----+ 
| cc | name | cod | 
+------+------+-----+ 
| 0001 | jhon | 123 | 
+------+------+-----+ 
| 0002 | paul | 567 | 
+------+------+-----+ 

Затем вы изменяете свойство:

ALTER PROPERTY USER.cod NAME tax_code; 

Теперь мы имеем:

+------+------+-----+----------+ 
| cc | name | cod | tax_code | 
+------+------+-----+----------+ 
| 0001 | jhon | 123 | 123 | 
+------+------+-----+----------+ 
| 0002 | paul | 567 | 567 | 
+------+------+-----+----------+ 

При этом пои nt класс USER уже не имеет пробной версии, но некоторые из них делают. Затем мы удалим старые значения из классов:

UPDATE USER REMOVE cod; 

И, наконец, мы добираемся до того, что вы хотите.

+------+------+----------+ 
| cc | name | tax_code | 
+------+------+----------+ 
| 0001 | jhon | 123 | 
+------+------+----------+ 
| 0002 | paul | 567 | 
+------+------+----------+ 

Надеюсь, что это поможет. Если у вас все еще есть проблемы, можете ли вы разместить некоторый SQL, который воспроизводит проблему.

Смежные вопросы