1. 程式人生 > >mysql遍歷某一資料庫的某張表的所有欄位進行操作

mysql遍歷某一資料庫的某張表的所有欄位進行操作

寫了一個儲存過程,引數是輸入資料庫名稱和表名稱,然後對該表的所有欄位進行操作,過程如下:

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