Fórum Erro ao criar tabela!! O que aconteceu? #164676

04/06/2003

0

Unsuccessful metadata update
could not find UNIQUE INDEX with specified columns
Statement: CREATE TABLE TBL_TURMAS(
IDTURMA INTEGER NOT NULL PRIMARY KEY,
CURSO VARCHAR(50) NOT NULL,
DT_INICIO TIMESTAMP NOT NULL,
DT_FIM TIMESTAMP NOT NULL,
HR_INICIO TIMESTAMP NOT NULL,
HR_FIM TIMESTAMP NOT NULL,
VAGAS INTEGER NOT NULL CHECK(VAGAS > 0),
PROFESSOR VARCHAR(40) NOT NULL REFERENCES TBL_FUNCIONARIOS(NOME) ON UPDATE CASCADE,
ENCERRADA SMALLINT DEFAULT 0,
DT_CAD TIMESTAMP DEFAULT ´NOW´,
RESP VARCHAR(10) NOT NULL REFERENCES TBL_FUNCIONARIOS(LOGIN) ON UPDATE CASCADE
)


Earmarques

Earmarques

Responder

Posts

04/06/2003

Josemarlourenco

Acho que é pq vc tá tentando criar um relacionamento usando o campo nome, da tabela de funcionários (TBL_FUNCIONARIOS(NOME) ).
Se este campo (TBL_FUNCIONARIOS(NOME) ), não for uma PrimaryKey ou UniqueKey (o que acredito que não seja), este erro vai ocorrer.
Não seria melhor vc relacionar as duas tabelas usando um código (como é feito normalmente)?

Josemar


Responder

Gostei + 0

04/06/2003

Fred

tente fazer assim

CREATE TABLE TBL_TURMAS(
IDTURMA INTEGER NOT NULL,
CURSO VARCHAR(50) NOT NULL,
DT_INICIO TIMESTAMP NOT NULL,
DT_FIM TIMESTAMP NOT NULL,
HR_INICIO TIMESTAMP NOT NULL,
HR_FIM TIMESTAMP NOT NULL,
VAGAS INTEGER NOT NULL CHECK(VAGAS > 0),
PROFESSOR VARCHAR(40),
ENCERRADA SMALLINT DEFAULT 0,
DT_CAD TIMESTAMP DEFAULT ´NOW´,
RESP VARCHAR(10) NOT NULL,
primary key (idturma),
foreign key (processor) REFERENCES TBL_FUNCIONARIOS(NOME) ON UPDATE CASCADE,
foreign key (resp) REFERENCES TBL_FUNCIONARIOS(LOGIN) ON UPDATE CASCADE
)
ou ainda assim apenas crie a tabela primeiro

CREATE TABLE TBL_TURMAS(
IDTURMA INTEGER NOT NULL,
CURSO VARCHAR(50) NOT NULL,
DT_INICIO TIMESTAMP NOT NULL,
DT_FIM TIMESTAMP NOT NULL,
HR_INICIO TIMESTAMP NOT NULL,
HR_FIM TIMESTAMP NOT NULL,
VAGAS INTEGER NOT NULL CHECK(VAGAS > 0),
PROFESSOR VARCHAR(40),
ENCERRADA SMALLINT DEFAULT 0,
DT_CAD TIMESTAMP DEFAULT ´NOW´,
RESP VARCHAR(10) NOT NULL,
primary key (idturma)
)
e depois crie as chaves estrangeiras

alter table TBL_TURMAS add constraint Nomequalquer foreign key (processor) REFERENCES TBL_FUNCIONARIOS(NOME) ON UPDATE CASCADE;
alter table TBL_TURMAS add constraint nomequalquer2 foreign key (resp) REFERENCES TBL_FUNCIONARIOS(LOGIN) ON UPDATE CASCADE

E O NOSSO AMIGO JOSEMAR QUE ME DESCULPE MAS ACHO QUE VOCE ESTA DESATUALIZADO NORMALMENTE NAO E FEITO NAO POR CÓDIGO O RELACIONAMENTO E SIM DIRETO NO BANCO COMO ESTAMOS TENTANDO FAZER AQUI 8)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar