17
Tôi muốn đổi tên tất cả các tên cột thành chữ thường trong cơ sở dữ liệu PostgreSQL Tôi vừa mới mã hóa một hàm sql. Dưới đây là mã.Đổi tên tên cột trong cơ sở dữ liệu postgresql
CREATE OR REPLACE FUNCTION update_column_names() RETURNS boolean AS $$
DECLARE
aRow RECORD;
aRow2 RECORD;
tbl_name TEXT;
col_name TEXT;
new_col_name TEXT;
BEGIN
FOR aRow IN select table_name from information_schema.tables where table_schema='public' and table_type='BASE TABLE' LOOP
SELECT aRow.table_name INTO tbl_name from current_catalog;
FOR aRow2 IN select column_name from information_schema.columns where table_schema='public' and table_name = aRow.table_name LOOP
SELECT aRow2.column_name INTO col_name from current_catalog;
new_col_name:=lower(col_name);
RAISE NOTICE 'Table name:%',tbl_name;
RAISE NOTICE 'Column name:%',aRow2.column_name;
RAISE NOTICE 'New column name:%',new_col_name;
ALTER TABLE tbl_name RENAME COLUMN col_name TO new_col_name;
END LOOP;
END LOOP;
RETURN true;
END;
$$ LANGUAGE plpgsql;
Mã ở trên không cho biết mối quan hệ tbl_name không tồn tại. Có gì sai với mã?