mysql遍歷某一資料庫的某張表的所有欄位進行操作
阿新 • • 發佈:2019-02-12
寫了一個儲存過程,引數是輸入資料庫名稱和表名稱,然後對該表的所有欄位進行操作,過程如下:
BEGIN #將表格中含有\N的值置為空 DECLARE table_column VARCHAR(64); DECLARE flag SMALLINT DEFAULT 0; DECLARE curl1 CURSOR FOR SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = my_data_base AND TABLE_NAME = my_table_name; DECLARE EXIT HANDLER FOR NOT FOUND SET flag = -1; OPEN curl1; REPEAT FETCH curl1 INTO table_column; SET @sql1 = CONCAT('UPDATE ', my_data_base, '.', my_table_name, ' SET ', table_column, ' = NULL WHERE ', table_column, " = \'\\\\N'\; " ); SELECT @sql1; PREPARE pre1 FROM @sql1; EXECUTE pre1; UNTIL flag = -1 END REPEAT; DEALLOCATE PREPARE pre1; CLOSE curl1; END