行を削除し、キーと値のペア テーブルにバックアップを作成する mysql 関数を作成しています。ほとんどのことはできますが、取得した列名からの値の選択に失敗します
CREATE FUNCTION delete_item (
item_id_val int,
cur_usr_id int,
item_type_val varchar(45),
current_purpose varchar(45),
cur_date datetime
) RETURNS INT
BEGIN
declare col_name varchar(45);
declare no_of_cols int;
declare ind int;
declare c1 cursor for select column_name from information_schema.columns where table_name='tbl_name';
select count(column_name) from information_schema.columns where table_name='tbl_name' into no_of_cols;
open c1;
while no_of_cols > 0 do
fetch c1 into col_name;
insert into deleted_data(tbl_name,field_nm,val,activity_date) values('tbl_name',col_name,
(**select col_name from tbl_name where item_id=item_id_val**),cur_date);
set no_of_cols = no_of_cols-1;
end while;
close c1;
return 1;
太字のテキスト (*ed テキスト) は、列名自体を value の代わりに保存します。その列名の値をそのテーブルに格納する必要があります。みんな助けが必要