背景:
專案初期使用的配置庫和業務庫兩種資料庫並行,所有配置資料位於配置庫,所有業務資料根據不同省份位於不同資料庫。由於使用省份越來越多,各省的配置資料也越來越多導致配置庫的資料量過於龐大,各省共用乙個配置庫資料,僅依靠省份編碼去區分,查詢乙個簡單配置資料需要耗費200ms。因此專案組提出配置庫分離方案,將原有配置庫資料拆分到各個省業務庫中,由於**中大部分會根據省份編碼判斷,因此業務庫中的碼表依舊需要省份編碼字段。針對全網需求,如果涉及到配置資料,這樣就需要提供31個省的資料指令碼,這31個省的資料指令碼可能僅僅只有省份編碼不一樣,這樣的指令碼會存在兩個問題:
1.指令碼編寫難度較大,耗費大量人力物力
2.指令碼執行難度較大,dba 需要在31個省來回切資料庫,執行對應指令碼
解決方案:
將31個省資料指令碼編寫為乙個,所有指令碼都一樣,關於指令碼中省份編碼的資料根據庫中資料來填充。
inserteg:表studentinto tab select prov_code,'
固定值1
','固定值2
','固定值3
'from tab where ...
create表資料:table
`student` (
`s_id`
int(10) unsigned not
null auto_increment comment '
prk'
, `s_name`
varchar(32) default
null comment '
學生姓名',
primary
key(`s_id`)
) engine
=innodb auto_increment=
10default charset=utf8
現在要求插入幾條資料,要求名字是從表中讀取
insert這裡的 where 語句僅僅是為了限制查出來的結果這個可以根據實際情況編寫。into student select
11,s_name from student where s_id =
8;
mysql將一列資料累加 MySql某一列累計查詢
問題 有一列資料,需要累計顯示出來 比如 id salary 查詢結果 id salary sumsalary 1 10000 1 10000 10000 2 20000 2 20000 30000 3 30000 3 30000 60000 解決方案 1 使用自定義變數 用 set 定義變數 my...
sql 給表某一列的全部資料追加相同的資料
testsql 表 age 列名 column limit 1 追加的資料 ps oracle中 1 給testsql表的所有記錄的age欄位裡面追加 limit 1內容 update testsql set age concat age,limit 1 2 將剛才追加內容刪除 update tes...
shell取出多列檔案中某一列重複的資料
檔案內容的格式是 1 張三 2 李四 3 張三 第二列有重複資料,去重的指令碼如下 bin bash sort t t k2 file.txt awk f t else if 2 value target.txt sort t t k1 target.txt result.txt rm target...