2013-06-05 54 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關鍵字。在列名稱,變量名稱中避免這種情況。