2015-06-24 124 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