Jump to content

Criar tabela


Ramos123

Recommended Posts

Boa Tarde alguém pode me ajudar a criar uma tabela my sql só com género feminino .

Só sei criar com dois géneros. 

create table Instrutores 
(
	ins_codigo int primary key,
	ins_nome char(20) not null,
	ins_genero char(02) CHECK (Al_Genero IN ('F','M')),
	ins_email char(25)UNIQUE CHECK (Al_Email LIKE'%@%'),
    ins_codmodalidade int,
	constraint fk_Instrutores_Modalidades foreign key(ins_codmodalidade) references Modalidades(md_codigo),
);

Cumprimentos :Ramos

Link to comment
Share on other sites

  • 2 weeks later...
Em 23/02/2017 às 16:19, HappyHippyHippo disse:

se todos os registos existentes na tabela tem o mesmo valor para o mesmo campo, isso so indica que a coluna nao esta la a fazer nada. Por isso remove a coluna em questao

certo

se por acaso não quiseres remover a coluna, então podes colocar no campo

DEFAULT 'F'

assim sempre que for inserido um registo terá o valor de F.

cumps

Edited by devgoncalo
  • Vote 1
Link to comment
Share on other sites

Podes fazer um conjunto: ins_genero set('M', 'F')

Assim só aceita o M e o F como valores para o campo ins_genero. Se quiseres mais, ou menos, opções, basta adicionares.
Se colocares o campo como ins_genero set('F') NOT NULL DEFAULT 'F', só te vai aceitar unica e exclusivamente o valor 'F'.

  • Vote 1
10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

 Tentei por como me disse M6 

Mas da um erro se me poder ajudar ficava muito grato.

Não sei se é do oracle já que tenho tido problemas com programa instalei programa em inglês e da me em francês .

create table intrutoresfem
(
	ins_codigo int primary key,
	ins_nome char(20) not null,
	ins_genero set('F') NOT NULL DEFAULT 'F',
	ins_email char(25)UNIQUE CHECK (Al_Email LIKE'%@%'),
    ins_codmodalidade int,
	constraint fk_Instrutores_Modalidades foreign key(ins_codmodalidade) references Modalidades(md_codigo)
);


 

 

Cumprimentos:Ramos

Edited by Ramos123
Link to comment
Share on other sites

olá

esse código não contém erros.

assim de repente o que me parece que está a acontecer é que queres inserir dois registos com o mesmo ins_codigo e ele não deixa por ser chave primária. 

para evitar isso eu sugeria que esse campo fosse auto increment:

ALTER TABLE `intrutoresfem122`
    CHANGE COLUMN `ins_codigo` `ins_codigo` INT(11) NOT NULL AUTO_INCREMENT FIRST;

cumps

Link to comment
Share on other sites

O Workbench é apenas uma interface gráfica, não tem nada a ver com o facto de usares o MySQL ou o Oracle.
Fiquei na dúvida porque colocaste a questão no tópico do MySQL mas queixaste-te do Oracle.

Quanto ao erro, estou com o devgoncalo, isso parece ser um erro de chave duplicada.
Mas para te ajudar tens de dar mais informação, mostrar o erro completo e mostrar o script que estás a correr.

  • Vote 1
10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

O script é o seguinte M6

create table intrutoresfem122
(
	ins_codigo int primary key,
	ins_nome char(29) not null,
	ins_genero set('F') NOT NULL DEFAULT 'F',
	ins_email char(28)UNIQUE CHECK (Al_Email LIKE'%@%'),
    ins_codmodalidade int,
	constraint fk_Instrutores_Modalidades foreign key(ins_codmodalidade) references Modalidades(md_codigo)
);

E o erro é este 11:14:46    Error Code: 1022. Ecriture impossible, doublon dans une clé de la table 'intrutoresfem122'   

Tb Tentei com o que me aconselhou o Devgoncalo deu o seguinte erro

create table intrutoresfem122
(
	ins_codigo int primary key,
	ins_nome char(29) not null,
	ins_genero set('F') NOT NULL DEFAULT 'F',
	ins_email char(28)UNIQUE CHECK (Al_Email LIKE'%@%'),
    ins_codmodalidade int,
	constraint fk_Instrutores_Modalidades foreign key(ins_codmodalidade) references Modalidades(md_codigo)
);

ALTER TABLE `intrutoresfem122`
    CHANGE COLUMN `ins_codigo` `ins_codigo` INT(11) NOT NULL AUTO_INCREMENT FIRST;

. Ecriture impossible, doublon dans une clé de la table 'intrutoresfem122'   

O Exercício era este Com base na tabela de instrutores, crie uma nova tabela com os instrutores do género feminino.

E foi o que eu fiz .

 

Se me conseguirem ajudar ficaria muito grato 

 

Cumprimentos:Ramos 

Link to comment
Share on other sites

ola

parece-me que se está a criar um problema maior do que é preciso.

alguns apontamentos:

- sugiro que uses o HeidiSQL (https://www.heidisql.com/) para gerires as bases de dados, é simples de usar e muito completo;
- não sei qual é o contexto, mas não me parece correto separar instrutores femininos e masculinos. a separar, então definitivamente não é necessário o campo ins_genero;
- verifica se a tabela já não existe, se já existir o código não vai funcionar;
- se a tabela não existir, então cria uma nova tabela apenas com um campo. depois, vais acrescentando os campos e salvando. assim sabes se existe algum campo a dar problemas;
- se precisares no final de tudo do código para criar a tabela, no HeidiSQL existe a opção para te gerar esse código (que será idêntico ao que tens agora);

cumps

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.