Ahm… Eu não me lembro de como usar o “check” em BD, eu usei uma vez pra determinar as posições de jogadores de futebol em um trabalho, mas acabei esquecendo, e todo os outros exemplos que pesquisei até agora só me mostram com números… Tipo, "(Cod > 0), e eu quero que o ‘check’ faça com as opções ‘terceirizado’ e ‘funcionário’…
CREATE TABLE entregador(
mat_entregador VARCHAR(11) PRIMARY KEY,
nome VARCHAR(100),
entregador VARCHAR(15),
CHECK (‘TERCEIRIZADO’ OR ‘FUNCIONÁRIO’)
)
Em tese bastaria fazer o mesmo processo!
Exemplo:
Create Table Pessoa(
idPessoa Integer,
nomePessoa Varchar(200),
indSexo char(1) Constraint chk_ind_sexo Check(indSexo = 'M' or indSexo = 'F')
);
1 curtida
Valeu! Eu tinha feito quase a mesma coisa, esse de usar “char(1)” e tinha apagado, agora vou refazer e tentar fazer outra vez…
Eu coloquei assim, e tá dando um erro sobre não existir uma coluna “X”
// ERROR: column “X” does not exist
CREATE TABLE CLIENTE(
TELEFONE VARCHAR(11) UNIQUE NOT NULL,
NOME VARCHAR(100) NOT NULL,
ENDERECO VARCHAR(100) NOT NULL,
VIP CHAR(1) CHECK (VIP = “X”)
)
Tmbm coloquei pra testar:
VIP CHAR(1) CHECK (VIP = “S” OR VIP = “N”)
Mas dá o mesmo erro, porém no lugar do “X” tem o “S”
Tenta com a sintaxe neste formato abaixo:
Create Table Cliente(
telefone Varchar(11) Unique Not Null,
nome Varchar(100) Not Null,
endereco Varchar(100) Not Null,
vip Char(1) Check(vip In('S','N'))
)
1 curtida
Ah, aí sim, funcionou perfeitamente! Só tive que colocar uma “Primary Key” em ‘telefone’, por que quando eu abri a tabela, não tava dando pra inserir os dados, acho que se colocasse um “Insert” podia funcionar de inserir…