Ir para conteúdo
Fórum CódigoFonte.net

Marcel Costa

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

  1. Marcel Costa

    Trigger AFTER

    Preciso pegar um valor que esta em uma outra tabela, para conctenar com a matricula Ex.: Matricula antiga: 0123456 Matricula nova: sal0123456 Esse sal > vem do municipio "SALvador" Para pegar o nome do Municipio do campus, fiz uma função, que segue abaixo: CREATE OR REPLACE FUNCTION matricula_aluno(mat_aluno character varying) RETURNS character varying AS $BODY$ DECLARE municipio character varying(20); matriculanova character varying(20); BEGIN Select into municipio mun."MUN_NOME" From aluno a JOIN curso c ON a.curs_cod = c.curs_cod JOIN campus cm ON c.camp_cod = cm.camp_cod JOIN municipios mun ON cm.mun_cod = mun."MUN_COD" Where alun_matricula = mat_aluno; select into municipio substring(municipio from 0 for 4); select into municipio lower(municipio); matriculanova := municipio||mat_aluno; return matriculanova; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION matricula_aluno(character varying) OWNER TO postgres; Essa função, faz todo um select, que chega ate o MUN_NOME, quando o alun_matricula = parametro passado pela função. Essa função esta funcionando. Pega as 3 primeiras letras do municipio e conctena com o número de matricula. Só que, essa função soh funciona se eu colocar a TRIGGER como AFTER. Mas, com a trigger em AFTER, a função não consegue inserir no registro. O que eu posso fazer?
  2. Marcel Costa

    Trigger LOG TABELAS

    Galera, Depois de muito tempo. conseguir fazer a trigger de Log_tabelas. Agora, resta uma duvida. Como faço para que essa trigger se aplique em qualquer tabela do meu banco? sem eu ter que ir em cada tabela, e adicionar a trigger. Obrigado a todos! Segue a trigger abaixo: create or replace function create_logs() returns boolean as $body$ declare nome_tabela varchar; tabela_log_nome varchar; begin for nome_tabela in select distinct relname from pg_stat_user_tables WHERE schemaname='public' loop log_table_name := nome_tabela || '_log'; raise notice 'Criando Tabela Log de %', log_table_name; execute 'create table ' || log_table_name || ' as select * from ' || nome_tabela; execute 'alter table ' || log_table_name || ' add column operacao char'; execute 'alter table ' || log_table_name || ' add column data timestamp'; execute 'alter table ' || log_table_name || ' add column usuario varchar'; end loop; return true; end; $body$ language plpgsql;
  3. Esse codigo abaixo, tem algum a ver com o que eu estou querendo. Quero gerar uma tabela Log_produtos, a partir de todos os campos da tabela Protudos: create table log_produtos as (SELECT a.attname FROM pg_attribute AS a JOIN pg_class AS c ON c.oid=a.attrelid AND c.relname !~ '^pg_' JOIN pg_type AS t ON t.oid=a.atttypid LEFT OUTER JOIN pg_attrdef AS d ON c.oid=d.adrelid AND d.adnum=a.attnum WHERE a.attnum>0 AND c.relname = 'produtos' ORDER BY a.attnum); Agradeço a todos!
  4. Marcel Costa

    Dois ComboBox Relacionados

    Amigos, Estou estudando o VISUAL STUDIO 2008. Para começar, estou iniciando um projeto para fazer cadastro de equipamentos de informática. Já criei as tabelas no banco, fiz o vínculo. E já fiz o vinculo do banco ao meu projeto. eu criei duas tabelas, com o nome TB_TIPOS e TB_SUBTIPOS. Ja fiz a relação entre elas. Minha dúvida é o seguinte: Ex.:Na Tabela TB_TIPOS, tenho: Memória. HD, Processador.... Na tabela TB_SUBTIPOS, tenho: DDR1, DDR2, $00Gb, 1TB, Celeron, Dual Core... Na inserção, assim que eu marcar no ComboBox do TIPO a opção 'Memória'. No ComboBox de SUBTIPO, apemas as opções 'DDR1', 'DDR2'. Tem alauma forma para eu fazer dois ComboBox, um dependendo da alteração do outro? Agradeço a todos! Boa Noite!
×
×
  • Criar Novo...