mysql更新資料庫中所有相同的某個欄位的值

2021-09-02 14:44:52 字數 1920 閱讀 7179

. 檢視所有的資料表

-- 檢視所有資料表;

show

tables

;

2. 檢視某個資料表的所有的字段

-- 檢視表student的所有字段

describe tb_watch_back;

show

columns

from tb_watch_back;

3. 查詢資料庫中某個字段以及所在的表

-- 使用 information_schema.columns查詢所有的表以及字段

select table_name,column_name from information_schema.

columns

where table_schema =

'super_star'

and column_name =

'imei'

;4. 使用儲存過程更新資料庫中某個欄位的值

-- 如果儲存過程存在就刪除

drop

procedure

ifexists update_imei;

create

procedure update_imei(

in oldimei char(15

),in newimei char(15

))begin

-- 定義迴圈條件

declare flag int

default0;

-- 儲存表名

declare tname varchar(50

);-- 查詢資料庫super_star中含有imei列的表,如果區分大小寫使用binary column_name = 'imei'

declare result cursor

forselect table_name from information_schema.

columns

where table_schema =

'super_star'

and column_name =

'imei'

;-- 退出迴圈

declare

continue

handler

for sqlstate '02000'

set flag =1;

-- 開啟游標

open result;

while flag <>1do

-- 游標指向下乙個位置,可以有多個資料,比如fetch result into tname,ttype,...;

fetch result into tname;

-- 拼接字串表名sql,根據需要使用concat函式連線

-- set @execsql = concat('select * from ',tname,' where imei = ',oldimei,' ;');

set@execsql

= concat(

'update '

,tname,

' set imei = '

,newimei,

' where imei = '

,oldimei,

' ;');

prepare stmt from

@execsql

;execute stmt;

endwhile

;end

;-- 呼叫儲存過程更新資料

call update_imei(

'888888888888888'

,'864773030025354'

);

5. 參考文章連線

select結果賦值:

字串表名轉換:

如何同時更新資料庫中所有表的相同字段

之前在做專案的過程中,有時候需要重置一下資料庫中所有表中都存在的一些相同字段,如果表少的話還可以手動更新一下,一旦表的數量過多就會變得麻煩,因此自己寫了乙個適用於oracle資料庫的sql指令碼,可以先迴圈遍歷出資料庫中的所有表,然後拿著表名迴圈,進行動態sql的執行。我這裡需要進行的操作是將所有表...

查詢資料庫中所有列名

如何從整個資料庫所有表中查詢出乙個列名?比如想要查詢乙個名為 name 的列名,但是忘記了這一列是在那乙個表中,需要從整個資料庫的所有表中進行查詢。oracle 資料庫 select from user col comments s where s.column name like name mys...

如何獲取Mysql資料庫中所有表名

歡迎加入bim行業開發交流1群 群號 711844216 小夥伴們在使用資料庫時,有時候不止需要訪問其中的乙個表,而是多個表,這個時候就需要首先獲取資料庫中的表名,然後迴圈讀取表了。sql語句 show tables from 資料庫名 using system using system.colle...