2015-06-24 87 views
1

我开始学习SQL,我们的教授告诉我们要做6个表,分别列出各自的索引和约束条件。超级初学者 - Oracle SQL

某些列的数据类型必须是大于1的正整数。如何指定此值?我已经创建了表,但不小心把

CREATE TABLE Loan (
    LoanID number NOT NULL CHECK (0>=1), 

我很害怕我搞砸了整个事情。

对不起,如果答案太明显。我不太了解sql。

+0

不要害怕。关于软件的好处是我们拥有UNDO和REDO的权力。尝试某些东西没有任何处罚。 – APC

回答

0

你得到它基本上是正确的:

CREATE TABLE Loan 
(
    LoanID int NOT NULL CHECK (LoanID > 1) 
) 
1

例如用于设置约束为表列正整数

CREATE TABLE Loan 
(LoanID INT UNSIGNED NOT NULL 
) 

UNSIGNED将它作为任何迹象,因此将只接受积极的整数

如果您需要设置为接受比值更大的值,则可以使用CHECK约束条件,它将为

CREATE TABLE Loan 
(
    LoanID int unsigned NOT NULL CHECK (LoanID > 1) 
) 

但按照MySQL文档

的CHECK子句会被分析,但所有的存储引擎忽略。

+0

也许你错过了“大于1”的部分?听起来像一个约束 –

+0

@ZoffDino我对它应该是> 1我没有检查..感谢 – Sachu

0

的MySQL/ORACLE/MS SQL Server的

来源:http://www.w3schools.com/sql/sql_check.asp

CREATE TABLE Loan1 (LoanID int NOT NULL, CONSTRAINT chk_Loan1 CHECK (LoanID>1)); 
CREATE TABLE Loan2 (LoanID int NOT NULL, CONSTRAINT chk_Loan2 CHECK (LoanID>1)); 
... 
Select * From Loan1; 
Select * From Loan2; 
... 

另见:SQL Data Types