Ajuda com 'CHECK'

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…