2013-06-05 121 views
0

嗨我想使用CHECK约束来阻止一行大于另一行。列之间的CHECK约束

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

该表已创建,但插入行时没有应用约束。

任何帮助我做错了会很好。

+0

这是在SQL Server?我只是很不确定你是怎么用int(10)成功创建表的。无论如何,你可以检查使用'sp_help myTable'创建的约束。 – hallie

+0

您使用的是什么RDBMS(MySql,SQL Server,Oracle等)? – peterm

+0

@hallie oracle是什么使用 – user2447832

回答

1

您必须给出约束的名称。

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

此外,beginendOracle关键字。在列名称,变量名称中避免这种情况。