开发一个补丁,需求如下:
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;
解决方案 »
- 恢复数据时候blob字段数据出错,报Error 330错误?
- 安装MySQL在linux下面 /etc/init.d/ 没有 mysql
- mysql PROCEDURE 里面使用查询怎么会返回全表呢,某些项又不对.........
- can't return a result set in the given context
- mysql同步的问题
- 关于mysql里中文乱码的转换
- MySQL中的状态变量都是什么含义,你对哪些状态变量比较重视?
- C API使用MySQL数据库的问题?(高分,求助)
- 安装时出以下提示,怎么办,装不上.
- 关于Mysql中left join优化的问题,求指点
- 怎么在控制面板里添加MYSQL数据源?
- Mysql遍历
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.
注意:补丁会在系统运行中执行多次,除了第一次新增的参数值是默认值外,其他的情况都必须是运行补丁前该字段的实际值。
建议你能举例说明,而不是这样仅用文字描述。否则时间都会花在这种问来问去上。(不问的话更惨,一但做出来不是你要的,反而浪费大家时间)