Ajuda rapida para um usuario
Pessoal preciso de uma ajudinha rapida quem puder por favor.
Utilizo o IBExpert para fazer minhas modificações nos bancos firebird que uso, nunca fiz um curso especifico mas consigo fazer bastante coisa, mas agora preciso modificar algumas coisas em um banco no qual só tenho acesso via script (isql).
Entao minhas perguntas sao sobre isto, como consigo em um unico script criar varias tabelas, pq se utilizo CREATE TABLE duas vezes me da erro na segunda.
E estou colocando o script se alguem puder dar uma verificada para mim pois inicialmente ele foi gerado para o postgre, que nao conheço, e nao sei as diferenças de linguagem e esta dando uns erro nas linhas alem do create.
Obrigado pela atenção
CREATE TABLE fr_grupo(
grp_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
grp_nome character varying(40) NOT NULL
);
CREATE TABLE fr_log(
log character varying(6000)
);
CREATE TABLE fr_log_event(
log_id integer NOT NULL,
log_data timestamp without time zone,
log_hora character(8),
log_codform integer,
log_descform character varying(100),
log_operacao character(1),
log_usuario character varying(30),
log_sistema character(3),
log_chave character varying(200),
log_chavecont character varying(128),
log_conteudo text
);
CREATE TABLE fr_permissao(
per_codigo integer NOT NULL,
grp_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
rel_codigo integer,
frm_codigo integer,
com_codigo integer,
mnu_codigo integer,
per_adicionar character(1) DEFAULT ´N´::bpchar,
per_excluir character(1) DEFAULT ´N´::bpchar,
per_editar character(1) DEFAULT ´N´::bpchar NOT NULL,
per_visualizar character(1) DEFAULT ´N´::bpchar NOT NULL,
per_habilitado character(1) DEFAULT ´N´::bpchar NOT NULL
);
CREATE TABLE fr_relatorio(
rel_codigo integer NOT NULL,
sis_codigo character(3) NOT NULL,
rel_nome character varying(255) NOT NULL,
rel_conteudo text,
rel_modificado timestamp without time zone,
rel_tamanho integer,
usr_codigo integer
);
CREATE TABLE fr_sessao(
ses_conexao integer NOT NULL,
ses_datahora_login timestamp without time zone,
ses_usuario character varying(20),
ses_nome_usuario character varying(40),
ses_nome_maquina character varying(40),
ses_end_ip character varying(20),
sis_codigo character(3)
);
CREATE VIEW fr_sessao_vi AS
SELECT s.ses_conexao, s.ses_datahora_login, s.ses_usuario, s.ses_nome_usuario, s.ses_nome_maquina, s.ses_end_ip, s.sis_codigo
FROM fr_sessao s
WHERE (s.ses_conexao = pg_backend_pid());
CREATE TABLE fr_sistema(
sis_codigo character varying(3) NOT NULL,
sis_descricao character varying(30) NOT NULL,
img_codigo integer,
img_codigo_icone integer,
sis_sqldatalimite character varying(2000),
sis_sqldadosentidade character varying(2000),
sis_sqlinformacoes character varying(2000),
sis_check character varying(30),
sis_grupoexterno integer,
sis_resumo character varying(1000)
);
CREATE TABLE fr_usuario(
usr_codigo integer NOT NULL,
usr_login character varying(20) NOT NULL,
usr_senha character varying(64),
usr_administrador character(1) DEFAULT ´N´::bpchar,
usr_tipo_expiracao character(1) NOT NULL,
usr_dias_expiracao integer,
usr_imagem_digital bytea,
usr_foto bytea,
usr_nome character varying(60) NOT NULL,
usr_email character varying(60),
usr_digital integer,
usr_inicio_expiracao timestamp without time zone,
CONSTRAINT fr_usuario_usr_login_check CHECK ((btrim((usr_login)::text) <> ´´::text)),
CONSTRAINT fr_usuario_usr_nome_check CHECK ((btrim((usr_nome)::text) <> ´´::text))
);
CREATE TABLE fr_usuario_grupo(
grp_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
usr_codigo integer NOT NULL
);
CREATE TABLE fr_usuario_sistema(
usr_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
uss_acesso_externo character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_administrador character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_acesso_maker character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_criar_formulario character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_criar_relatorio character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_acessar character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_criar_regra character(1) DEFAULT ´N´::bpchar NOT NULL
);
ALTER TABLE ONLY fr_grupo
ADD CONSTRAINT fr_grupo_grp_nome_unq UNIQUE (grp_nome, sis_codigo);
ALTER TABLE ONLY fr_grupo
ADD CONSTRAINT fr_grupo_pk PRIMARY KEY (grp_codigo, sis_codigo);
ALTER TABLE ONLY fr_permissao
ADD CONSTRAINT fr_permissao_pk PRIMARY KEY (per_codigo);
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_nome_sis_unq UNIQUE (sis_codigo, rel_nome);
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_pk PRIMARY KEY (rel_codigo);
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_rel_codigo_key UNIQUE (rel_codigo, sis_codigo);
ALTER TABLE ONLY fr_usuario
ADD CONSTRAINT fr_usuario_usr_login_key UNIQUE (usr_login);
ALTER TABLE ONLY fr_sistema
ADD CONSTRAINT pk_fr_sistema PRIMARY KEY (sis_codigo);
ALTER TABLE ONLY fr_usuario
ADD CONSTRAINT pk_fr_usuario PRIMARY KEY (usr_codigo);
ALTER TABLE ONLY fr_usuario_grupo
ADD CONSTRAINT pk_fr_usuario_grupo PRIMARY KEY (grp_codigo, sis_codigo, usr_codigo);
ALTER TABLE ONLY fr_usuario_sistema
ADD CONSTRAINT pk_fr_usuario_sistema PRIMARY KEY (usr_codigo, sis_codigo);
CREATE INDEX fki_fr_relatorio_usuario_fk2 ON fr_relatorio USING btree (usr_codigo);
CREATE INDEX fki_fr_sistema_imagem_fk ON fr_sistema USING btree (img_codigo);
CREATE INDEX fki_fr_usuario_grupo_grupo_fk ON fr_usuario_grupo USING btree (grp_codigo, sis_codigo);
CREATE INDEX fki_fr_usuario_grupo_usuario_fk ON fr_usuario_grupo USING btree (usr_codigo);
CREATE INDEX fki_fr_usuario_sistema_sistema_fk ON fr_usuario_sistema USING btree (sis_codigo);
CREATE INDEX fki_fr_usuario_sistema_ususario_fk ON fr_usuario_sistema USING btree (usr_codigo);
CREATE UNIQUE INDEX ix_fr_sessao ON fr_sessao USING btree (ses_conexao);
CREATE FUNCTION fr_sessao_hora() RETURNS ´trigger´
AS $$
BEGIN delete from fr_sessao where ses_conexao = pg_backend_pid(); NEW.ses_conexao := pg_backend_pid(); NEW.ses_datahora_login := current_timestamp; RETURN NEW; END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER fr_sessao_bi0
BEFORE INSERT ON fr_sessao
FOR EACH ROW
EXECUTE PROCEDURE fr_sessao_hora();
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_usuario_fk FOREIGN KEY (usr_codigo) REFERENCES fr_usuario(usr_codigo) ON
UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY fr_usuario_grupo
ADD CONSTRAINT fr_usuario_grupo_grupo_fk FOREIGN KEY (grp_codigo, sis_codigo) REFERENCES fr_grupo(grp_codigo, sis_codigo) ON UPDATE RESTRICT ON
DELETE CASCADE;
ALTER TABLE ONLY fr_usuario_grupo
ADD CONSTRAINT fr_usuario_grupo_usuario_fk FOREIGN KEY (usr_codigo) REFERENCES fr_usuario(usr_codigo) ON
UPDATE RESTRICT ON DELETE CASCADE;
ALTER TABLE ONLY fr_usuario_sistema
ADD CONSTRAINT fr_usuario_sistema_sistema_fk FOREIGN KEY (sis_codigo) REFERENCES fr_sistema(sis_codigo) ON
UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY fr_usuario_sistema
ADD CONSTRAINT fr_usuario_sistema_ususario_fk FOREIGN KEY (usr_codigo) REFERENCES fr_usuario(usr_codigo) ON
UPDATE CASCADE ON DELETE CASCADE;
Utilizo o IBExpert para fazer minhas modificações nos bancos firebird que uso, nunca fiz um curso especifico mas consigo fazer bastante coisa, mas agora preciso modificar algumas coisas em um banco no qual só tenho acesso via script (isql).
Entao minhas perguntas sao sobre isto, como consigo em um unico script criar varias tabelas, pq se utilizo CREATE TABLE duas vezes me da erro na segunda.
E estou colocando o script se alguem puder dar uma verificada para mim pois inicialmente ele foi gerado para o postgre, que nao conheço, e nao sei as diferenças de linguagem e esta dando uns erro nas linhas alem do create.
Obrigado pela atenção
CREATE TABLE fr_grupo(
grp_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
grp_nome character varying(40) NOT NULL
);
CREATE TABLE fr_log(
log character varying(6000)
);
CREATE TABLE fr_log_event(
log_id integer NOT NULL,
log_data timestamp without time zone,
log_hora character(8),
log_codform integer,
log_descform character varying(100),
log_operacao character(1),
log_usuario character varying(30),
log_sistema character(3),
log_chave character varying(200),
log_chavecont character varying(128),
log_conteudo text
);
CREATE TABLE fr_permissao(
per_codigo integer NOT NULL,
grp_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
rel_codigo integer,
frm_codigo integer,
com_codigo integer,
mnu_codigo integer,
per_adicionar character(1) DEFAULT ´N´::bpchar,
per_excluir character(1) DEFAULT ´N´::bpchar,
per_editar character(1) DEFAULT ´N´::bpchar NOT NULL,
per_visualizar character(1) DEFAULT ´N´::bpchar NOT NULL,
per_habilitado character(1) DEFAULT ´N´::bpchar NOT NULL
);
CREATE TABLE fr_relatorio(
rel_codigo integer NOT NULL,
sis_codigo character(3) NOT NULL,
rel_nome character varying(255) NOT NULL,
rel_conteudo text,
rel_modificado timestamp without time zone,
rel_tamanho integer,
usr_codigo integer
);
CREATE TABLE fr_sessao(
ses_conexao integer NOT NULL,
ses_datahora_login timestamp without time zone,
ses_usuario character varying(20),
ses_nome_usuario character varying(40),
ses_nome_maquina character varying(40),
ses_end_ip character varying(20),
sis_codigo character(3)
);
CREATE VIEW fr_sessao_vi AS
SELECT s.ses_conexao, s.ses_datahora_login, s.ses_usuario, s.ses_nome_usuario, s.ses_nome_maquina, s.ses_end_ip, s.sis_codigo
FROM fr_sessao s
WHERE (s.ses_conexao = pg_backend_pid());
CREATE TABLE fr_sistema(
sis_codigo character varying(3) NOT NULL,
sis_descricao character varying(30) NOT NULL,
img_codigo integer,
img_codigo_icone integer,
sis_sqldatalimite character varying(2000),
sis_sqldadosentidade character varying(2000),
sis_sqlinformacoes character varying(2000),
sis_check character varying(30),
sis_grupoexterno integer,
sis_resumo character varying(1000)
);
CREATE TABLE fr_usuario(
usr_codigo integer NOT NULL,
usr_login character varying(20) NOT NULL,
usr_senha character varying(64),
usr_administrador character(1) DEFAULT ´N´::bpchar,
usr_tipo_expiracao character(1) NOT NULL,
usr_dias_expiracao integer,
usr_imagem_digital bytea,
usr_foto bytea,
usr_nome character varying(60) NOT NULL,
usr_email character varying(60),
usr_digital integer,
usr_inicio_expiracao timestamp without time zone,
CONSTRAINT fr_usuario_usr_login_check CHECK ((btrim((usr_login)::text) <> ´´::text)),
CONSTRAINT fr_usuario_usr_nome_check CHECK ((btrim((usr_nome)::text) <> ´´::text))
);
CREATE TABLE fr_usuario_grupo(
grp_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
usr_codigo integer NOT NULL
);
CREATE TABLE fr_usuario_sistema(
usr_codigo integer NOT NULL,
sis_codigo character varying(3) NOT NULL,
uss_acesso_externo character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_administrador character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_acesso_maker character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_criar_formulario character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_criar_relatorio character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_acessar character(1) DEFAULT ´N´::bpchar NOT NULL,
uss_criar_regra character(1) DEFAULT ´N´::bpchar NOT NULL
);
ALTER TABLE ONLY fr_grupo
ADD CONSTRAINT fr_grupo_grp_nome_unq UNIQUE (grp_nome, sis_codigo);
ALTER TABLE ONLY fr_grupo
ADD CONSTRAINT fr_grupo_pk PRIMARY KEY (grp_codigo, sis_codigo);
ALTER TABLE ONLY fr_permissao
ADD CONSTRAINT fr_permissao_pk PRIMARY KEY (per_codigo);
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_nome_sis_unq UNIQUE (sis_codigo, rel_nome);
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_pk PRIMARY KEY (rel_codigo);
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_rel_codigo_key UNIQUE (rel_codigo, sis_codigo);
ALTER TABLE ONLY fr_usuario
ADD CONSTRAINT fr_usuario_usr_login_key UNIQUE (usr_login);
ALTER TABLE ONLY fr_sistema
ADD CONSTRAINT pk_fr_sistema PRIMARY KEY (sis_codigo);
ALTER TABLE ONLY fr_usuario
ADD CONSTRAINT pk_fr_usuario PRIMARY KEY (usr_codigo);
ALTER TABLE ONLY fr_usuario_grupo
ADD CONSTRAINT pk_fr_usuario_grupo PRIMARY KEY (grp_codigo, sis_codigo, usr_codigo);
ALTER TABLE ONLY fr_usuario_sistema
ADD CONSTRAINT pk_fr_usuario_sistema PRIMARY KEY (usr_codigo, sis_codigo);
CREATE INDEX fki_fr_relatorio_usuario_fk2 ON fr_relatorio USING btree (usr_codigo);
CREATE INDEX fki_fr_sistema_imagem_fk ON fr_sistema USING btree (img_codigo);
CREATE INDEX fki_fr_usuario_grupo_grupo_fk ON fr_usuario_grupo USING btree (grp_codigo, sis_codigo);
CREATE INDEX fki_fr_usuario_grupo_usuario_fk ON fr_usuario_grupo USING btree (usr_codigo);
CREATE INDEX fki_fr_usuario_sistema_sistema_fk ON fr_usuario_sistema USING btree (sis_codigo);
CREATE INDEX fki_fr_usuario_sistema_ususario_fk ON fr_usuario_sistema USING btree (usr_codigo);
CREATE UNIQUE INDEX ix_fr_sessao ON fr_sessao USING btree (ses_conexao);
CREATE FUNCTION fr_sessao_hora() RETURNS ´trigger´
AS $$
BEGIN delete from fr_sessao where ses_conexao = pg_backend_pid(); NEW.ses_conexao := pg_backend_pid(); NEW.ses_datahora_login := current_timestamp; RETURN NEW; END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER fr_sessao_bi0
BEFORE INSERT ON fr_sessao
FOR EACH ROW
EXECUTE PROCEDURE fr_sessao_hora();
ALTER TABLE ONLY fr_relatorio
ADD CONSTRAINT fr_relatorio_usuario_fk FOREIGN KEY (usr_codigo) REFERENCES fr_usuario(usr_codigo) ON
UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY fr_usuario_grupo
ADD CONSTRAINT fr_usuario_grupo_grupo_fk FOREIGN KEY (grp_codigo, sis_codigo) REFERENCES fr_grupo(grp_codigo, sis_codigo) ON UPDATE RESTRICT ON
DELETE CASCADE;
ALTER TABLE ONLY fr_usuario_grupo
ADD CONSTRAINT fr_usuario_grupo_usuario_fk FOREIGN KEY (usr_codigo) REFERENCES fr_usuario(usr_codigo) ON
UPDATE RESTRICT ON DELETE CASCADE;
ALTER TABLE ONLY fr_usuario_sistema
ADD CONSTRAINT fr_usuario_sistema_sistema_fk FOREIGN KEY (sis_codigo) REFERENCES fr_sistema(sis_codigo) ON
UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY fr_usuario_sistema
ADD CONSTRAINT fr_usuario_sistema_ususario_fk FOREIGN KEY (usr_codigo) REFERENCES fr_usuario(usr_codigo) ON
UPDATE CASCADE ON DELETE CASCADE;
Stephens
Curtidas 0
Respostas
Facc
15/04/2009
O que seria esse [b:dfa6ab5e4e]character varying[/b:dfa6ab5e4e]?
Se for para armazenar palavras, no IBExpert é [b:dfa6ab5e4e]varchar[/b:dfa6ab5e4e]
Se for para armazenar palavras, no IBExpert é [b:dfa6ab5e4e]varchar[/b:dfa6ab5e4e]
GOSTEI 0