硬币收集数据库。限制数据

时间:2019-02-22 04:34:33

标签: sql sql-server

作为硬币收集者,我想将收集的物品放在网上。我只管理美国一美分,镍,一角钱,四分之一,半美元和一美元硬币。每个硬币都有一个日期,一个薄荷标记,一个值,条件和最后一次评估的日期。我在每个硬币上都保留3/5卡,同时也保留了一般评论。

使用以下准则在数据库中手动创建名为CoinCollection的表。我会在我的规格范围之外为您提供创造性的自由。

薄荷标记为D(丹佛),P或空白(费城),S(旧金山),O(新奥尔良),CC(卡森城)。仅允许使用这些缩写。

条件为P(证明),BU(出色未流通),UC(未流通),VF(非常好),(F)精细,G(良好),P(差)。仅允许这些条件。

只允许使用P,N,D,Q,HD,D作为硬币类型。

确定添加记录时应填写的内容(空)。

我的藏品中很大一部分是几分钱。默认数据类型为一分钱。

CREATE TABLE CoinCollection
(
   CoinId int Primary Key NOT NULL,
   Manufactured_Date date,
   MintMarks nvarchar(20),
   CONSTRAINT chk_Mintmarks CHECK (Mintmarks IN ('D(Denver)', 'P(Philadelphia)', 'S(San Francisco)', 'O(New Orleans)','C C(Carson City)')),
   Price nvarchar(50),
   Conditions nvarchar(30),
   CONSTRAINT chk_Conditions CHECK (Conditions IN ('P(Proof)','BU(Brilliant Un-Circulated)','UC (Un-circulated)','VF (Very Fine)','F(Fine)','G (Good)','P(Poor)')), 
   Cointypes nvarchar(5),
   CONSTRAINT chk_Cointypes CHECK (Cointypes IN ('P' , 'N','D','Q','HD','D')),
   DEFAULT 'P',
   Appraisal_Date date
) ;

这是我到目前为止所拥有的。我不断收到此错误。

  

消息142,级别15,状态2,第0行不正确的语法定义   “ TABLE”约束。

1 个答案:

答案 0 :(得分:0)

尝试以下操作-您需要在列时间为default value添加cointype 定义

DEMO

CREATE TABLE CoinCollection
(
   CoinId int Primary Key NOT NULL,
   Manufactured_Date date,
   MintMarks nvarchar(20),
   Price nvarchar(50),
   Conditions nvarchar(30),
   Cointypes nvarchar(5) default 'P',
   Appraisal_Date date,
   CONSTRAINT chk_Mintmarks CHECK (Mintmarks IN ('D(Denver)', 'P(Philadelphia)', 'S(San Francisco)', 'O(New Orleans)','C C(Carson City)')),
   CONSTRAINT chk_Conditions CHECK (Conditions IN ('P(Proof)','BU(Brilliant Un-Circulated)','UC (Un-circulated)','VF (Very Fine)','F(Fine)','G (Good)','P(Poor)')),
   CONSTRAINT chk_Cointypes CHECK (Cointypes IN ('P' , 'N','D','Q','HD','D'))
) ;