【Ecology】修改字段类型
涉及字段类型,常用的表:workflow_billfield 、htmllabelindex 、workflow_bill 、workflow_browserurl 、formtable_main_*
修改字段类型,往往需要以下步骤(下面将以把字段类型修改成单人力资源浏览框为例):
修改该字段在流程表单中的显示类型:
- 首先找到该字段的fieldid(如:6545)和字段名称(如:xgry),和字段对应的表单id(formid = 3)
- 从workflow_browserurl表中找到人力资源浏览框对应的id(1)和fielddbtype (int)
- 根据附表1所示,可以得出修改的SQL为:
- UPDATE WORKFLOW_BILLFIELD SET Fielddbtype = ‘int’, Fieldhtmltype = ‘3’,type= ‘1’ where id = 6545
修改该字段所在表中的类型
1.在该表中新建一个新的字段,用于临时存放历史数据,由于是单人力资源浏览框,数据库字段类型应为INT型
ALTER TABLE FORMTABLE_MAIN_3 ADD TEMPFIELD INT NULL
2.将历史数据保存到临时字段中
Update SET FORMTABLE_MAIN_3 SET TEMPFIELD = XGRY
3.然后删除当前字段,重新添加
ALTER TABLE FORMTABLE_MAIN_3 DROP COLUMN XGRY
ALTER TABLE FORMTABLE_MAIN_3 ADD XGRY INT NULL
4.再将历史数据还原,删除临时字段
UPDATE FORMTABLE_MAIN_3 SET XGRY = TEMPFIELD
ALTER TABLE FORMTABLE_MAIN_3 DROP COLUMN TEMPFIELD
总结:
select * from formtable_main_120_dt4
select * from workflow_billfield where id = 11936
UPDATE WORKFLOW_BILLFIELD SET Fielddbtype = 'decimal(38,2)', Fieldhtmltype = 1,type= 3,qfws = 2 where id = 11936
ALTER TABLE formtable_main_120_dt4 ADD TEMPFIELD varchar(500) NULL
Update formtable_main_120_dt4 SET TEMPFIELD = F_SL
ALTER TABLE formtable_main_120_dt4 DROP COLUMN F_SL
ALTER TABLE formtable_main_120_dt4 ADD F_SL decimal(38, 2) NULL
UPDATE formtable_main_120_dt4 SET F_SL = TEMPFIELD
ALTER TABLE formtable_main_120_dt4 DROP COLUMN TEMPFIELD
附表
Fielddbtype |
Fieldhtmltype |
type |
||
单行文本框 |
文本 |
varchar(x) x代表字段长度,最大为999 |
1 |
1 |
整数 |
int |
1 |
2 |
|
浮点数 |
decimal(15,x) x代表小数位,1~4 |
1 |
3 |
|
金额转换 |
decimal(15,2) |
1 |
4 |
|
金额千分位 |
varchar(30) |
1 |
5 |
|
多行文本框 |
非HTML |
text |
2 |
1 |
是HTML |
text |
2 |
2 |
|
浏览按钮 |
一般 |
与workflow_browserurl中的fielddbtype对应 |
3 |
与workflow_browserurl中的id对应 |
自定义单选 |
browser.x x代表自定义浏览框标识 |
3 |
161 |
|
自定义多选 |
browser.x x代表自定义浏览框标识 |
3 |
162 |
|
Check框 |
char(1) |
4 |
1 |
|
选择框 |
int |
5 |
1 |