在PG中,创建表的时候,检查表名是否为小写,如果出现大写字母,则报错。
CREATE OR REPLACE FUNCTION create_table_func_1()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
DECLARE
obj record;
BEGIN
FOR obj IN SELECT * FROM pg_event_trigger_ddl_commands() WHERE command_tag in ('CREATE TABLE','CREATE TABLE AS')
LOOP
if obj.object_identity != LOWER(obj.object_identity) THEN
RAISE EXCEPTION 'Table name ''%'' must be lowercase!!!', obj.object_identity;
end if;
END LOOP;
END;
$$;
CREATE EVENT TRIGGER check_table_table_lowercase ON ddl_command_end
WHEN TAG IN ('CREATE TABLE','CREATE TABLE AS')
EXECUTE PROCEDURE create_table_func_1();