2013-06-05 3 views
0

Salut J'essaie d'utiliser la contrainte CHECK pour empêcher une ligne d'être plus grande que l'autre.CHECK contrainte entre les colonnes

create table myTable (
begin int(10), 
end int(10), 
check (begin < end) 
); 

La table est créée mais aucune contrainte n'est appliquée lors de l'insertion de lignes.

Toute aide sur ce que je fais mal serait géniale.

+0

est-ce dans SQL Server? Je suis juste pas sûr comment vous avez réussi à créer la table avec int (10). Quoi qu'il en soit, vous pouvez vérifier la contrainte créée en utilisant 'sp_help myTable'. – hallie

+0

Quel RDBMS utilisez-vous (MySql, SQL Server, Oracle, etc.)? – peterm

+0

@hallie oracle est ce que j'utilise – user2447832

Répondre

1

Vous devez donner un nom à la contrainte.

CREATE TABLE myTable 
(
    begin NUMBER (10), 
    end  NUMBER (10), 
    CONSTRAINT constr_begin_end CHECK (begin < end) 
); 

En outre, begin et end sont les mots clés Oracle. Évitez cela dans les noms de colonnes, les noms de variables.

Questions connexes