我无法从类中删除属性。该错误表明该属性在类中找不到。但是财产肯定在那里。
我尝试使用命令'DROP PROPERTY VResearchInstitution.turnover'以及OrientDB studio中的属性删除该属性。
我想从该类中删除该属性,并将其与其他数据类型一起从STRING添加到EMBEDDEDLIST。我知道应该有一种方法来更改属性和修改类型,但是我也无法做到这一点,这就是为什么我试图将其删除并重新添加。
答案 0 :(得分:0)
我注意到只有设置了SuperClass的Node / Vertex具有此行为。如果有人有更好的答案,请告诉我。
答案 1 :(得分:0)
您可能在其他地方犯了一个小错误,例如错字。
考虑以下代码,该代码可以正确运行(您可以尝试一下):
/* Let's create a class TEST that has V as superclass */
CREATE CLASS TEST EXTENDS V
/* Let's create a class EXAMPLE that has TEST as superclass */
CREATE CLASS EXAMPLE EXTENDS TEST
/* Let's create a property */
CREATE PROPERTY EXAMPLE.Name STRING
/* Now let's delete the property */
DROP PROPERTY EXAMPLE.Name
/* EXAMPLE.name has been deleted successfully */
/* Now let's try altering the property */
CREATE PROPERTY EXAMPLE.Name STRING
ALTER PROPERTY EXAMPLE.Name MANDATORY TRUE
/* EXAMPLE.name has been altered successfully */
这按预期工作。删除属性时,请注意以下事项:
DROP PROPERTY EXAMPLE.name
会给出错误,因此请确保您的查询中不包含任何错字。/* Let's add a vertex */
CREATE VERTEX EXAMPLE SET Name = 'a'
/* Now let's try deleting the property */
DROP PROPERTY EXAMPLE.Name
/* Now let's query the vertex */
SELECT FROM EXAMPLE WHERE Name = 'a'
结果仍将包含属性Name = 'a'
,因为删除类的属性只会更改该类的schema
,但是自OrientDB's classes are schema-less起,将保留您的数据。
希望可以帮助您找到错误。