开发一个补丁,需求如下:
1.在已运行的数据库中修改一个表,增加一个参数(填初始值);
2.这个参数在运行中被修改为其他值;
3.再次运行该补丁,要求不仅增加该参数,而且值必须是修改后的值。
我写的代码如下,但是不能解决3中的要求,请高手支招,谢谢DROP TABLE IF EXISTS tbl_FCCPUTHD_temp;
CREATE TABLE tbl_FCCPUTHD_temp (
BT INT UNSIGNED NOT NULL
,ACRTHD INT UNSIGNED
,PRIMARY KEY (BT)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin;
insert into tbl_FCCPUTHD_temp select BT,ACRTHD from tbl_FCCPUTHD;DROP TABLE IF EXISTS tbl_FCCPUTHD;
CREATE TABLE tbl_FCCPUTHD (
BT INT UNSIGNED NOT NULL
,ACRTHD INT UNSIGNED
,BRDSW5 INT UNSIGNED default 16383
,PRIMARY KEY (BT)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin;insert into tbl_FCCPUTHD select * ,16383 from tbl_FCCPUTHD_temp;drop table tbl_FCCPUTHD_temp;
1.修改前表tbl_FCCPUTHD,定义如下;
DROP TABLE IF EXISTS tbl_FCCPUTHD;
CREATE TABLE tbl_FCCPUTHD (
BT INT UNSIGNED NOT NULL
,ACRTHD INT UNSIGNED
,PRIMARY KEY (BT)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin; 2.现在需要在补丁中对该表增加字段BRDSW5,默认填写值163833.补丁打上后,BRDSW5在后续的数据库运行中被修改成了100(系统正常修改)4.再运行补丁,要求tbl_FCCPUTHD中新增字段BRDSW5值是100.
注意:补丁会在系统运行中执行多次,除了第一次新增的参数值是默认值外,其他的情况都必须是运行补丁前该字段的实际值。
建议你能举例说明,而不是这样仅用文字描述。否则时间都会花在这种问来问去上。(不问的话更惨,一但做出来不是你要的,反而浪费大家时间)