use*_*515 8 firebird firebird-3.0
由于firebird 3我无法修改列类型
在我使用这种更新之前:
update RDB$RELATION_FIELDS set
RDB$FIELD_SOURCE = 'MYTEXT'
where (RDB$FIELD_NAME = 'JXML') and
(RDB$RELATION_NAME = 'XMLTABLE')
Run Code Online (Sandbox Code Playgroud)
因为我得到ISC错误335545030.
也许火鸟3有另一种方式?
Firebird 3不再允许直接更新系统表,因为这是一种可能破坏数据库的方法.另请参阅发行说明中的系统表现在是只读的.您将需要使用DDL语句来进行修改.
您似乎想要将列的数据类型更改为域.你需要使用alter table ... alter column ...它.具体来说,您需要做:
alter table XMLTABLE
alter column JXML type MYTEXT;
Run Code Online (Sandbox Code Playgroud)
这确实有一些限制:
更改列的数据类型:TYPE关键字
关键字TYPE将现有列的数据类型更改为另一个允许类型.将禁止可能导致数据丢失的类型更改.例如,CHAR或VARCHAR列的新类型中的字符数不能小于现有规范.
如果将列声明为数组,则不允许更改其类型或维数.
外键,主键或唯一约束中涉及的列的数据类型根本无法更改.
自Firebird 1(InterBase 6.0)之前就已提供此声明.
| 归档时间: |
|
| 查看次数: |
2573 次 |
| 最近记录: |